remplire listbox à patir d'un élémnent sélctionné dans le mémo

remplire listbox à patir d'un élémnent sélctionné dans le mémo - Delphi/Pascal - Programmation

Marsh Posté le 13-07-2010 à 19:04:32    

Bonjour,
 
J'ai liste box1 qui contient des numéros de 1 à 1000 , j'ai crée aussi un boutant intitulé addition pour permettre la sélection des élément listé dans le liste box1 dans un mémo .
 
Le deuxième liste box2 doit affiché un script en se basant des donnée sélectionné dans le mémo:
 
listbox2.Items.Add('DT' +':'+'DTB'+'=' + memo1.Lines.Text+'MAL2'+';') ;
listbox2.Items.Add('DTBI' +':'+'DTB'+'=' + memo1.Lines.Text+'MAL2'+';') ;
 
Le script est le suivant :
 
DT:DTB= 1MAL2;
DTBI:DTB= 1MAL2;
 
NB: LE MAL2 est label sur le lisbox1.
 
memo1.Lines.Text représent les numéros sélectionné par listbox1.
 
Ma question est la suivante:
 
Si je selctionne 4 numéros dans le mémo, je veux que dans le listbox2 , il m'affiche le script suivant:
 
Affichage souhaité:
 
DT:DTB= 1MAL2;
DTBI:DTB= 1MAL2;
 
DT:DTB= 2MAL2;
DTBI:DTB= 2MAL2;
 
DT:DTB= 3MAL2;
DTBI:DTB= 3MAL2;
 
DT:DTB= 4MAL2;
DTBI:DTB= 4MAL2;
 
 
mon script affiche les numéros contigus , alors que je veux l'affichage en haut  ceci:
 
Affichage non souhaité:
 
DT:DTB= 1234MAL2;
DTBI:DTB= 1234MAL2;
 
Est ce qu' il y a une boucle à introduire dans cette formule :
 
listbox2.Items.Add('DT' +':'+'DTB'+'=' + memo1.Lines.Text+'MAL2'+';') ;
listbox2.Items.Add('DTBI' +':'+'DTB'+'=' + memo1.Lines.Text+'MAL2'+';') ;
 
 
2question : comment mettre un code sur listbox2 pour que je puisse sélectionné son contenu , quand je clic droit sur la souris je peux copier et collé le contenu du lidtebox2 dans un fichier texte mannuellement .  
 
Merci de votre support c'est urgent  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 13-07-2010 à 19:04:32   

Reply

Marsh Posté le 15-07-2010 à 17:42:32    

Bonjour,
 
Merci de votre support , c'est urgent .
 
J'attend avec impatience vos suggestion

Reply

Marsh Posté le 16-07-2010 à 01:30:49    

C'est vraiment pas clair et mal présenté ton probleme

 

Pour le 1 il me semble qu'il faut une bouclie vi du genre :

 

for i := 0 to memo1.Lines.count-1 do
begin
  listbox2.Items.Add('DT' +':'+'DTB'+'=' + memo1.Lines.[i]+'MAL2'+';') ;
  listbox2.Items.Add('DTBI' +':'+'DTB'+'=' + memo1.Lines.[i]+'MAL2'+';') ;
end;

 

pour le 2eme question il faut utiliser le presse papier :  listbox2.CopySelection


Message édité par rengzehn le 16-07-2010 à 01:31:03
Reply

Marsh Posté le 17-07-2010 à 19:33:22    

Bonjour,
 
Merci mon frère pour votre réponse.
 
J'ai appliqué votre suggestion , mais j'arrive pas à compiler mon application .
J'ai déclarer I comme integer et j'ai appliqué la solution proposé.
 
Il me donne l'erreur cité ci-dessous:
[erreur].UNITE9.pas(85):Identificateur attendue mais '[' trouvé.
 
Je vais plus simplifier mon application:
listbox2 recoit les valeur du memo1 des numeros , et chaque numeros se trouve dans une ligne ,  
 
par example: le numéros 1 la ligne 1
le 2 la ligne 2  
Le 3 la ligne 3
Le 4 la ligne 4
 
je voudrai quand je clic sur le run , le listbox2 géneré un script qui est listé ci-dessous :
listbox2.Items.Add('DT' +':'+'DTB'+'=' + memo1.Lines.Text+'MAL2'+';') ;  
listbox2.Items.Add('DTBI' +':'+'DTB'+'=' + memo1.Lines.Text+'MAL2'+';') ;  
 
Ex:le script suivant est génerer par le code cité ci-dessous:
 
DT:DTB= 1MAL2;  
DTBI:DTB= 1MAL2;  
 
Je voudrai avoir :
DT:DTB= 2 MAL2;  
DTBI:DTB= 2MAL2;  
DT:DTB= 3MAL2;  
DTBI:DTB= 3MAL2;
DT:DTB= 4MAL2;  
DTBI:DTB= 4 MAL2;  
 
dans le listbox2.
 
Mon application génére le code suivant :
 
DT:DTB= 1234MAL2;  
DTBI:DTB= 1234MAL2;  
 
NB: je pense que l'erreur est dans : memo1.Lines.[i].
 
J'attend vos suggestion avec impatience .
 
Merci.
 
 
 
 
 
 
 
 
 

Reply

Marsh Posté le 17-07-2010 à 21:18:57    

ha pardon ce n'est pas memo1.Lines.[i] mais memo1.Lines[i]
 
sans le point !
 
la propriété Lines du memo est en fait un tableau de chaines de caractère.
 
Il faut faire une boucle pour obtenir ce que vous voulez. Donc il faut bien declarer i au debut de la procedure et reprndre le code que j'ai mis plus haut mais sans le point entre le crochet ouvrant et Lines
 

Reply

Marsh Posté le 17-07-2010 à 22:11:48    

Bonsoir,
 
Il y a une petite amélioration, mais à 50%, je m'explique:
 
Exemple :
 
Si je choisi deux numéros (1 ET 2) voila ce qui me donne avec l'application de ton idée:
 
DT:DTB= 1 MAL2; (1)
DT:DTB= 2 MAL2; (2)
DTBI:DTB= MAL2; (3)
DTBI:DTB= MAL2;(4)
 
Dans le cas 1 et 2 excellent.
 
Dans le cas 3 ET 4 non.
 
Le résultat voulu normalement sera comme indiqué ci-dessous:
 
DT:DTB= 1 MAL2; (1)
DT:DTB= 2 MAL2; (2)
DTBI:DTB= 1MAL2; (3)
DTBI:DTB= 2MAL2;(4)
 
Un grand merci de votre support ,et merci de m'aider encore une fois.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed