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

  FORUM HardWare.fr
  Programmation

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°104759
trueslash
(╯°□°)╯︵ MMM
Posté le 25-02-2002 à 22:28:18  profilanswer
 

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 ?

mood
Publicité
Posté le 25-02-2002 à 22:28:18  profilanswer
 

n°104765
antp
Super Administrateur
Champion des excuses bidons
Posté le 25-02-2002 à 22:54:36  profilanswer
 

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
n°104769
JWhy
je peux plier (héhé)
Posté le 25-02-2002 à 23:00:18  profilanswer
 

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
n°104788
trueslash
(╯°□°)╯︵ MMM
Posté le 25-02-2002 à 23:22:17  profilanswer
 

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

n°104793
trueslash
(╯°□°)╯︵ MMM
Posté le 25-02-2002 à 23:37:33  profilanswer
 

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

n°104804
[SDF]Poire
Vive Grumly
Posté le 26-02-2002 à 00:25:10  profilanswer
 

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:
n°104845
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-02-2002 à 09:56:15  profilanswer
 

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
n°104846
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-02-2002 à 09:56:37  profilanswer
 

[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
n°104988
trueslash
(╯°□°)╯︵ MMM
Posté le 26-02-2002 à 13:34:33  profilanswer
 

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 ?

n°105004
antp
Super Administrateur
Champion des excuses bidons
Posté le 26-02-2002 à 13:44:24  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

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

 

Sujets relatifs
[ DELPHI ] commander le port //[delphi] question sur les tableaux
Créer des Jeux afin de faire participer les visiteurs !!![DELPHI - DLL]pb d'affichage d'une form
MyBase delphiCompatibilité : DirectX / composants réseaux de Delphi !
C'est quoi cette fenetre noire derrière mon appli Delphi ?![PHP] cherche application de gestion de contacts perso [trouvée]
[Delphi] Mettre une fenetre au premier plancreer un site web
Plus de sujets relatifs à : [Delphi] Je cherche à créer des forms dynamiquement ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR