[Delphi] Je cherche à créer des forms dynamiquement ...

Je cherche à créer des forms dynamiquement ... [Delphi] - Programmation

Marsh Posté le 25-02-2002 à 22:28:18    

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 ?

Reply

Marsh Posté le 25-02-2002 à 22:28:18   

Reply

Marsh Posté le 25-02-2002 à 22:54:36    

la création est bonne, mais après tu dois faire:
InsertControl(Damier[0][0])
ou
Button1.Parent := Form1;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 25-02-2002 à 23:00:18    

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...


---------------
www.alliancefrancophone.org ... Home is where the heart is
Reply

Marsh Posté le 25-02-2002 à 23:22:17    

Merci les gars, j'essaye tout de suite !
 
 :sol:  :jap:

Reply

Marsh Posté le 25-02-2002 à 23:37:33    

ç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 ?

Reply

Marsh Posté le 26-02-2002 à 00:25:10    

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


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 26-02-2002 à 09:56:15    

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)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-02-2002 à 09:56:37    

[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...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 26-02-2002 à 13:34:33    

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 ?

Reply

Marsh Posté le 26-02-2002 à 13:44:24    

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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

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