begin process at 2012 02 09 02:23:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Delphi

 > 

Divers

 > 

Débutant(e)

 > 

Multiselect avec retourner sur Tedit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Multiselect avec retourner sur Tedit

jeudi 16 avril 2009 à 20:03:17 | Multiselect avec retourner sur Tedit

shell13010

Bonsoir a tous,

Alors je bloque sur un truc bete que j'arrive pas a resoudre donc comment selectionner plusieur items dans une listbox en  la retournent dans un Tedit? apres chaque virgule..

exemple
             items 1te
                      3st
                      5e

Dans le Tedit j'aimerais l'afficher comme sa te,st,e

Auriez vous une idée?

Merci d'avance pour votre aide

Cordialement..
jeudi 16 avril 2009 à 21:37:03 | Re : Multiselect avec retourner sur Tedit

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

dans les propriétés de la TListBox, MultiSelect doit etre a true puis dans l'evenement OnClick de la TListBox ou grace a un boutton :


procedure TForm2.Button1Click(Sender: TObject);
var N, SC : integer;
    S : string;
begin
  if ListBox1.SelCount = 0 then
    Exit;

  SC := 1;
  S  := '';

  for N := 0 to ListBox1.Count-1 do
    if ListBox1.Selected[N] then
    begin
      if SC < ListBox1.SelCount then
        S := S + ListBox1.Items[N] + ', '
      else
        S := S + ListBox1.Items[N];
      inc(SC);
    end;
  Edit1.Text := S;
end;






jeudi 16 avril 2009 à 22:32:22 | Re : Multiselect avec retourner sur Tedit

shell13010

je tien a te remercier pour ton aide f0xi 
et je te souhaite bonne continuation
vendredi 17 avril 2009 à 11:21:36 | Re : Multiselect avec retourner sur Tedit

f0xi

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !

alors petite precision :

si je te fait utiliser une variable S de type String plutot que la propriété Text du TEdit dans la boucle, c'est pour eviter d'appeler le OnChange du TEdit a chaque iteration de boucle.
comme cela on garde des performances "identique" selon si on selectionne 1, 5, 10, 100 elements.

si tu as d'autres questions, hesite pas, mais cherche un peu avant quand même.

bonne journée et bonne continuation.




vendredi 17 avril 2009 à 23:39:58 | Re : Multiselect avec retourner sur Tedit

shell13010

Salut f0xi

Alors j'aimerais avoir ton point de vue sur se que j'ai essayer de faire pour comprendre le code et surtout pour apprendre voila mon code

procedure TForm8.Button1Click(Sender: TObject);
Var I:Integer;
S:String;
begin
   For I:= 0to ListBox1.Items.Count - 1 do
      If ListBox1.Selected[I] then
    begin
        S:= ListBox1.Items[I]+','+S;
    Edit1.text:=S;
 end;
end;


peut tu me dire les Differences et si j'ai fait des erreurs?

me conseiller malgrer que j'utilise ta procedure j'aime bien comprendre se que je fait car copier et coller comme une mule s'en rien comprendre on progressera pas

bref en ésperant d'avoir une reponse meme si c'est résolu.

Bonne fin de soirée.




samedi 18 avril 2009 à 15:36:45 | Re : Multiselect avec retourner sur Tedit

f0xi

Membre Club Administrateur CodeS-SourceS


procedure TForm8.Button1Click(Sender: TObject);
Var I: Integer;
    S: String;
begin
{ <procedure> }

  // ne pas oublier ceci :
  if ListBox1.SelectCount = 0 then // si rien n'est selectionné on sort
  begin { <if> }
    Edit1.Text := ''; // facultatif, remet a zero le texte du edit
    Exit;             // sortie de la methode
  end; { <if> }
  // cela empeche de lancer un traitement qui aura un resultat nul
  // on connait deja le resultat ... pas besoin de continuer


  S := '';
  // S peut etre initialisé cela augmente un peu les performances


  // ListBox1.Count = ListBox.Items.Count
  // autant faire court et utiliser ListBox1.Count

  for I := 0 to ListBox1.Count - 1 do
     // If ListBox1.Selected[I] then
     // begin
     //   S:= ListBox1.Items[I]+','+S;
     //   Edit1.text:=S;
     // end;
     // ATTENTION a l'indentation du code!
     // ici tu transmet S a chaque itération, ce n'est pas le but!

  begin { <for> }
    if ListBox1.Selected[I] then // Si l'item I est selectionné
      S := ListBox1.Items[I] + ',' + S; // attention ici les elements seront inversé
      // ou pour les avoir dans l'ordre :
      // S := S + ',' + ListBox1.Items[I];

  end; { <for> }

 
 
Edit1.text := S;
  // On transmet S a la fin, aprés la boucle!


end; { <procedure> }




dimanche 19 avril 2009 à 13:02:10 | Re : Multiselect avec retourner sur Tedit

shell13010

Salut f0xi,

Merci d'avoir prit le temp pour ton explication bien détailler j'ai compris mais erreur




Cette discussion est classée dans : items, retourner, tedit, multiselect


Répondre à ce message

Sujets en rapport avec ce message

Lisbox avec des items de differentes couleurs? [ par fat ] Bonjours, comment faire pour avoir une listbox avec des items de differentes couleurs? Retourner une chaine... [ par ELECTRORESiSTiK ] Salut,J'ai une chaine "1234567890" je cherche une fonction qui me donnerai "0987654321". Comment puis-je faire ça ? Il existe une fonction ?Merci d'av TEdit avec masque de saisie [ par lguez ] Existe t'il un composant dérivé de TEdit dans lequel on peut lui définir un masque de saisie.par exemple :avoir la possibilité de ne rentrer que des n Graphique sur un TEdit [ par magicvinni ] Bonjour, j'ai un dessin sur la fond de ma fiche et un TEdit dessus mais invisible au debut de l'application. Quand je veux faire un rectangle sur le f Evenements [ par MasterJ ] Je veux savoir si il y a un moyen de regrouper la gestion d'évènements de plusieurs controles Tedit similaires avec une seule procédure.Exemple : J'ai Valider le type d'un TEdit [ par MasterJ ] Bonjour tt le mde,comment fait-t-on pour vérifier que le contenu d'un TEdit est bien du type que l'on veut.Plus précisément, j'envoie le contenu d'un Alignement controle TEdit [ par ricopetitdejeuner ] Bonjour !!Voila, je voudrais savoir s'il existe une propriete pour aligner le texte d'un TEdit a droite (comme pour un TLabel, avec le taLeftJustify), Une boucle pour scanner des Tedit [ par MasterJ ] Bonjour tt le monde,je me demandais s'il est possible de scanner plusieurs Tedit ayant un nom composé d'une racine similaire et d'un numéro ordinal a Stocker dernier composant ayant genere event [ par MasterJ ] Bonjour todo el mondo,comment fais t'on pour garder dans une variable le dernier composant ayant genere un evenement. Le but est de faire un petit un recuperer le caption d'un items d'un popupmenu [ par apz ] Salut,comment recuperer le caption d'un items d'un popupmenu en excution:table1.indexname:=popupmenu1.items.?Merci.


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales