Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2672 connectés 

 


Dernière réponse
Sujet : [Delphi] Je cherche à créer des forms dynamiquement ...
antp je crois que c'est pas recommandé :/
enfin non, mais quand c'est la form l'owner elle s'occupe de supprimer tous les composants dont elle est l'owner
donc l'utilisation est pas pareille.
avec le panel c'est toi qui doit supprimer le composant qui l'a comme owner

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
antp je crois que c'est pas recommandé :/
enfin non, mais quand c'est la form l'owner elle s'occupe de supprimer tous les composants dont elle est l'owner
donc l'utilisation est pas pareille.
avec le panel c'est toi qui doit supprimer le composant qui l'a comme owner

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]

trueslash

antp a écrit a écrit :

 
 
parce que si tu mets ton bouton dans un panel, son owner c'est la form (c'est elle qui détruira le bouton) mais son parent c'est le panel (c'est dans le panel qu'apparaît le bouton)  




 
dans le cas d'un boutton ds un panel, le owner peut pas être le panel ?

antp

[SDF]Poire a écrit a écrit :

Au lieu d'1 tableau utilise une liste TObjectList pour stocker T boutons C + pratique
 :hello:  




 
bhen si c'est un damier d'une taille fixe le tableau c'est plus simple...

antp

trueslash a écrit a écrit :

 
Parent est initialisé à Nil par le constructeur, pourquoi pas à Owner ?  




 
parce que si tu mets ton bouton dans un panel, son owner c'est la form (c'est elle qui détruira le bouton) mais son parent c'est le panel (c'est dans le panel qu'apparaît le bouton)

[SDF]Poire Au lieu d'1 tableau utilise une liste TObjectList pour stocker T boutons C + pratique
 :hello:
trueslash ça marche impec' !
 
c quoi la différence entre le Component Owner donné au constructeur et la propriété Parent du Boutton ?
 
Parent est initialisé à Nil par le constructeur, pourquoi pas à Owner ?
trueslash Merci les gars, j'essaye tout de suite !
 
 :sol:  :jap:
JWhy en plus d'un Owner, il faut que tu assignes un Parent a ton bouton sinon il n'apparaitra pas... et il faut bien sur que tu lui definiesses une taille (width et height) et une position (left et top)... si tu veux qu'il se passe qqchose quand tu cliques dessus, n'oublie pas non plus l'evenement OnClick !
il faut aussi definir la taille de ton tableau!
 
le plus simple est peut-etre d'utiliser un TStringList, qui va te permettre de "stocker" et acceder facilement a tes boutons:
 

  • defini un  

 FButtons: TStringlist
dans les "private" de ta form
 

  • créer le dans ton formCreate

FButtons := TStringlist.Create;
 

  • ajoute-z'y tes boutons:

for x := 0 to 9 do
  for y := 0 to 9 do
   FButtons.AddObject(format('%d,%d', [x, y]), TButton.Create(self));
 

  • accede a tes boutons en fonction de leur coordonnee x/y

 iButton := FButtons.IndexOf(format('%d,%d', [x, y]));
  if iButton <> -1 then
    with TButton(FButtons.Objects[iButton]) do
    begin
      Parent=self;
      Width=32;
      height=32;
      etc...etc...
    end;
 

  • vide et detruit ton FButtons dans le formDestroy:

 while (FButtons.count <> 0) do
  begin
    FButtons.Objects[0].free;
    FButtons.Delete(0);
  end;
  FButtons.free;
 
 
 
voila , y'a surement des erreurs, mais c'est une solution possible a ton probleme...

antp la création est bonne, mais après tu dois faire:
InsertControl(Damier[0][0])
ou
Button1.Parent := Form1;
trueslash bon voilà, mettons que j'ai une unit Unit1 avec une form Form1 dedans. Dans unit1, j'ai la déclaration suivante:
 
Damier: array[][] of array of TButton;
 
à l'aide de ce tableau, je voudrai générer des bouttons sur Form1
 
j'ai essayé Damier[0][0]:=TButton.create(Form1) mais ça marche pas ...
 
qqun peut me dire comment faire ?

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)