IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi Discussion :

Créer par programme un TEdit...


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Par défaut Créer par programme un TEdit...
    Bonjour,

    je suis débutante en Delphi et je galère !

    En fait, j'ai une liste, et je dois la décomposer pour mettre chaque élément de la liste dans une ligne d'une ScrollBox. Puis chaque élément doit être décomposé dans un TEdit, puis un Combobox puis la dernière partie dans un TEdit, tout celà devant être contenu dans la ScrollBox.
    Je sais pas si c'est très clair !


    Le problème en fait est que je ne sais pas comment créer par programme un Edit ou un ComboBox ou un Scrollbox.

    Si quelqu'un peut m'aider, je vous remercie d'avance !
    Camille

  2. #2
    Membre éclairé Avatar de Matt2094
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    295
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 295
    Par défaut
    Si j'ai bien compris, ton problème est de créer des composants pendant l'éxécution de ton programme. Pour cela, cherche dans la F.A.Q du côté de la création dynamique de composants.

  3. #3
    Membre chevronné
    Avatar de Hauwke
    Inscrit en
    Septembre 2005
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 329
    Par défaut
    Bonjour et bienvenue sur le forum de Developpez.com
    D'une façon générale, il suffir de créer l'objet à l'aide de la focntion "create" (voir l'aide en ligne pour plus de détail sur sa syntaxe)
    des exemples génériques... (en supposant qu'on les pose sur une fiche "form1" et qu'on décide que cette "form1" sera responsable de leur destruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    procedure CreerdesObjets;
    var
    unEdit:Tedit;
    UneCombo:Tcombobox;
    UneListe:Tlist;
    begin
    UnEdit:=Tedit.create(Form1);
    UneCombo:=TCombobox.create(Form1);
    UneList:=Tlist.create(self)
    with UneList do
    begin
    ...
    Des instructions de traitements
    end;
    Unelist.free; // on libére la mémoire puisqu'on a pas dédié cette opération à un autre composant (form1, en l'occurence)
    end;
    Voilà un petit début.. le reste se trouve dans l'aide, les tutos, les sources et la faq
    Bon dev
    Cordialement,
    Hauwke

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Par défaut Merci beaucoup
    Merci pour votre aide. J'ai plus le temps de regarder ça aujourd'hui mais dès demain je regarderai si ça marche.

    Merci encore, je pensais pas obtenir une réponse aussi vite !

    Restez pas loin, je vais surement avoir encore besoin de vous !!!!

    Cam

  5. #5
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 932
    Par défaut
    Citation Envoyé par Douine
    dès demain je regarderai si ça marche.
    Ca je n'en doute pas

    Cependant, les instructions et le code fournis constituent des pistes et des orientations qu'il faudra nécessairement adapter à ton besoin: en vrac
    • le parent des composants crées
    • le positionnement dans la scrollbox
    • l'écartement des "lignes" de composants créés
    • ...

    Aussi, ne te décourage pas...

  6. #6
    Expert confirmé

    Avatar de sjrd
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2004
    Messages
    4 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 4 517
    Par défaut
    Pour compléter, tu devras d'abord boucler sur ta liste. Pour chaque élément, créer un TComboBox et un TEdit. Tu dois leur affecter une position grâce à Left, Top, Width et Height, ainsi que le ScrollBox1 en tant que Parent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    procedure RemplirScrollBox(ScrollBox : TScrollBox; Liste : array of TElement);
    var I : integer;
    begin
      // D'abord il faut supprimer tous les contrôles qui existaient auparavent dans la scrollbox
      while ScrollBox.ControlCount > 0 do
        ScrollBox.Controls[0].Free;
    
      // Ensuite on boucle sur la liste
      for I := Low(Liste) to High(Liste) do
      begin
        // On crée la combo box
        with TComboBox.Create(ScrollBox) do
        begin
          Parent := ScrollBox;
          Left := 16;
          Top := 18 + 24*I;
          Width := 16;
          Height := 16;
          Checked := Liste[I].ValeurBooleenne;
          Visible := True;
        end;
        // On crée l'edit
        with TEdit.Create(ScrollBox) do
        begin
          Parent := ScrollBox;
          Left := 40;
          Top := 16 + 24*I;
          Width := ScrollBox.Width-56; // la largeur restante
          Text := Liste[I].ValeurChaine;
          Visible := True;
        end;
      end;
    end;
    Il ne te reste plus qu'à adapter TElement, ValeurBooleenne et ValeurChaine aux types réels de ta liste, et puis appeler cette routine avec en paramètres la scroll box et la liste

    Bon dev'
    Sébastien
    sjrd, ancien rédacteur/modérateur Delphi.
    Auteur de Scala.js, le compilateur de Scala vers JavaScript, et directeur technique du Scala Center à l'EPFL.
    Découvrez Mes tutoriels.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Par défaut Ca Marche !!!!
    Merci beaucoup à tous !

    Ca marche, c'est trop bien !!!


    Mais c'est pas fini encore... Y'a encore du boulot, alors vous risquez de me revoir bientôt !!!

    A+,
    Camille

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Par défaut Toujours à propos de ma combobox !
    Citation Envoyé par sjrd
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    procedure RemplirScrollBox(ScrollBox : TScrollBox; Liste : array of TElement);
    var I : integer;
    begin
      // D'abord il faut supprimer tous les contrôles qui existaient auparavent dans la scrollbox
      while ScrollBox.ControlCount > 0 do
        ScrollBox.Controls[0].Free;
    
      // Ensuite on boucle sur la liste
      for I := Low(Liste) to High(Liste) do
      begin
        // On crée la combo box
        with TComboBox.Create(ScrollBox) do
        begin
          Parent := ScrollBox;
          Left := 16;
          Top := 18 + 24*I;
          Width := 16;
          Height := 16;
          Checked := Liste[i].ValeurBooleenne;
          Visible := True;
        end;
        // On crée l'edit
        with TEdit.Create(ScrollBox) do
        begin
          Parent := ScrollBox;
          Left := 40;
          Top := 16 + 24*I;
          Width := ScrollBox.Width-56; // la largeur restante
          Text := Liste[i].ValeurChaine;
          Visible := True;
        end;
      end;
    end;
    Re-salut !

    merci pour ton message, ça marche nickel !

    Je voudrais maintenant ajouter une propriété dans la combobox pour que si l'utilisateur clique sur un choix particulier de la combo (par exemple, j'ai une liste du style : =, <>, := ... et qu'il choisit 'parmi' ) ça affiche une nouvelle boite TEdit. (ça je sais faire maintenant )

    Est-ce que je peux rajouter dans le code au-dessus un truc du genre : OnChange do (if (Text = 'parmi') then edit2 := ' '); ?

    Bon en fait, je sais que je peux pas puisque ça marche pas, mais est-ce que j'y suis presque ou est-ce que c'est pas du tout comme ça qu'il faut faire ???

    Voilà, encore un de mes nombreux soucis !
    Merci beaucoup de vos réponses et de votre patience avec moi !!!!

    Camille

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer plusieurs TEdit par programmation?
    Par rebelor dans le forum Delphi
    Réponses: 2
    Dernier message: 02/06/2007, 17h30
  2. créer un champ paradox par programme
    Par ouldfella dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/04/2006, 13h31
  3. création de plusieurs TEdit par programmation
    Par faten7 dans le forum C++Builder
    Réponses: 4
    Dernier message: 15/04/2006, 21h22
  4. [Interbase]Comment créer une source ODBC par programme ?
    Par touhami dans le forum Bases de données
    Réponses: 1
    Dernier message: 13/03/2006, 16h40
  5. Comment créer un nouveau dossier par programmation ?
    Par annecyrond dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2003, 07h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo