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

Langage Delphi Discussion :

création d'objets dynamique


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 67
    Points
    67
    Par défaut création d'objets dynamique
    bonjour,

    J'ai un problème avec l'affichage d'objet Tshape dans la un panel j'arrive pas à les créer dynamiquement je sais pas comment m'y prendre en fait au début j'ai fait une procédure ensuite un constructeur pour finalement l'appeler dans FormCreate je vous donne une partie du code que j'essaye de faire fonctionner je ne trouve pas assez d'exemple concret c'est dommage. Merci d'avance

    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
     constructor Tst.Create(X:Integer;Y:Integer;Text : String);
     
    begin
    inherited Create;
    AlignementHorizontal:=alHCenter;
    AlignementVertical:=alvCenter;
    Caption:=Text;
    Shape:=stCircle;
    Left:=X;
    Top:=Y;
    end;
     
    procedure TForm4.DrawTheme(Sender: TObject);
    var
    W,H : Integer;
    Titre : String;
    begin
    W:=JvBevel1.Width;
    H:=JvBevel1.Height;
    Titre:=ComboBox1.items[1];
    tst.create(W,H,Titre);
    end;
     
     
    procedure TForm4.FormCreate(Sender: TObject);
    begin
    DrawTheme(Form4);
    end;
    C'est juste pour tester de mettre un objet TshapeText dans un panel automatiquement à partir d'une liste de Tstring. Pour l'instant j'essaye d'en créer un seul.

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    Si tst hérite d'un TShape, la methode create devrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    constructor Create(AOwner: TComponent;X:Integer;Y:Integer;Text : String);
    et il faut lui passer comme owner ton panel et faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inherited Create(AOwner) ;

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 67
    Points
    67
    Par défaut
    merci c'est mieux comme ca déja sa exécute mais cela n'affiche toujours rien dans mon panel .

    je remet le code

    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
    constructor Tst.Create(AOwner: TComponent;X:Integer;Y:Integer;Text : String);
     
    begin
    inherited Create(Aowner);
    AlignementHorizontal:=alHCenter;
    AlignementVertical:=alvCenter;
    Caption:=Text;
    Shape:=stCircle;
    Left:=X div 2;
    Top:=Y div 2;
    end;
     
    procedure TForm4.DrawTheme(Sender: TObject);
    var
    W,H : Integer;
    Titre : String;
    begin
    W:=JvBevel1.Width;
    H:=JvBevel1.Height;
    Titre:=ComboBox1.items[1];
    tst.create(JvBevel1,W,H,Titre);
    end;
     
     
    procedure TForm4.FormCreate(Sender: TObject);
    begin
    DrawTheme(Form4);
    end;

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    A quel(s) objet(s) correspond les variables:
    AlignementHorizontal
    AlignementVertical
    Caption
    Pour voir le tshape, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shape1.Brush.Color := clyellow;

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 67
    Points
    67
    Par défaut
    un composant TShapeText héritant de Tshape qu'on m'a donné avec quelques propirétés en plus

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Est-ce que l'objet Tst est un héritier du TshapeText ?

    Qu'apporte t'il de plus comme fonctionalité à part peut-être le create avec paramètres ?

    Peux-tu indiquer le code de la déclaration du TshapeText ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 67
    Points
    67
    Par défaut
    j'ai du oublier quelquechose ! voici le code
    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
    type
      Tst=class(TShapeText)
        Constructor Create(AOwner: TComponent;X:Integer;Y:Integer;Text: String);overload;
       end;
      TForm4 = class(TForm)
        JvBevel1: TJvBevel;
        JvBevel2: TJvBevel;
        JvBevel3: TJvBevel;
        JvHTListBox1: TJvHTListBox;
        JvGradientHeaderPanel1: TJvGradientHeaderPanel;
        JvBitBtn1: TJvBitBtn;
        JvLabel1: TJvLabel;
        ShapeText1: TShapeText;
        ComboBox1: TComboBox;
        procedure JvBitBtn1Click(Sender: TObject);
        procedure DrawTheme(Sender: TObject);
        procedure FormCreate(Sender: TObject);

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 67
    Points
    67
    Par défaut
    aussi j'ai cet avertissement :

    La méthode 'Create' cache la méthode virtuelle du type de base TShape

  9. #9
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Dans "constructor Tst.Create" il faut écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    inherited Create(Aowner,X,Y,Text);

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    N'oublie pas d'initialiser la propriétés parent, sinon il ne sera jamais affiché par exemple, si tu ajoutes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parent:=Form4; // où celle que tu utilises, tu le verras!
    dans le create: attention, le container n'est pas un wincontrol!

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    166
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 166
    Points : 67
    Points
    67
    Par défaut
    c'était le parent qui manquait dans les propriétes merci beaucoup !!!

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/10/2007, 17h57
  2. Création d'objets dynamiquement et accès à un serveur
    Par NoviceJava dans le forum Général Conception Web
    Réponses: 7
    Dernier message: 26/05/2007, 17h45
  3. [PowerBuilder] Création d'objets dynamiques
    Par Béné123456789 dans le forum Powerbuilder
    Réponses: 3
    Dernier message: 12/06/2006, 01h33
  4. [VB.NET] Création d'objet dynamique
    Par Torkan dans le forum Windows Forms
    Réponses: 9
    Dernier message: 29/05/2006, 04h18
  5. [FLASH MX2004] Création d'objet dynamiquement
    Par noarno dans le forum Flash
    Réponses: 3
    Dernier message: 15/12/2004, 12h00

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