Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : libérartion d un objet crée dynamiquement [ Divers / Débutant(e) ] (Zaydoun_391)

vendredi 23 novembre 2007 à 01:48:47 | libérartion d un objet crée dynamiquement

Zaydoun_391

salut a tous mon probléme ce de savoir comment je fé la libération d un ensemble des bouton ke jé crée dynamiquement c a dire je prend mon source un fichié ini pour sauvgardé les paramétre du bouton et lorsque je clik sur un bouton je veux ke tous boutons son libéré pour ke je puisse crée des autre par exemple lorsque je utilise (sender as Tbutton).free alors il libére seulement le bouton ke jé cliké sur elle mé dans mon cas je veux ke la libération se fé pour tout les boutons pour ke je puisse crée des autre

vendredi 23 novembre 2007 à 05:05:33 | Re : libérartion d un objet crée dynamiquement

f0xi

Membre Club Administrateur CodeS-SourceS

et avec des vrais mots ça donne quoi la question ?
on parle pas le "kéfé" ici


deefsign.gif

vendredi 23 novembre 2007 à 09:14:07 | Re : libérartion d un objet crée dynamiquement

Loda

Membre Club
salut,

tu sais, si tu utilises un minimum de ponctuation (et évite les fautes volontaires de français), on aurrait pas à relire ta question deux fois pour la comprendre.

pour libérer un object: .free

donc, la seul difficulté avec les object dynamique: il faut garder une référence des objects que tu crée. (genre un TComponentList)

Il me semble que plusieurs personnes t'on déjà fait remarquer que ce genre de problème trouvent facilement solution grâce à une recherche sur le forum/code de codes-sources !

bonne recherches,

Loda

Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.

mercredi 28 novembre 2007 à 12:49:56 | Re : libérartion d un objet crée dynamiquement

MAURICIO

Salut,

gráce à l' aide de Delphi sur la méthode Create, il te donne le link pour la méthode ".free".
T' aurais perdu moins de temps que de poster sur le forum!

Même remarque que Loda: t' es pas sur mobile ici, fait un effort de rédaction!!!

A+

mercredi 28 novembre 2007 à 16:56:58 | Re : libérartion d un objet crée dynamiquement

Zaydoun_391

merci pour le commentaire mé je veux te dire c est pas ça ce que je demande de me montré l aide de delphi

mercredi 28 novembre 2007 à 17:07:50 | Re : libérartion d un objet crée dynamiquement

MAURICIO

Après avoir relu et relu ...et .. relu ta question j' ai enfin compris ce que tu voulais !!!

En créant tes boutons donnentt leur un nom genre BoutonCustom1, BoutonCustom2 etc ...


Puis pour les detruitre utilise ceci:
TButton(FindComponent('BoutonCustom1')).Free;
TButton(FindComponent('BoutonCustom2')).Free;
TButton(FindComponent('BoutonCustom2')).Free;
etc ...

L' autre solution aurait été de les créer sur un TPanel par exemple puis de détruire tous les compos sur le panel mais cette solution fonctionne bien.

J' espère que j' ai pû t' aider :)
A+



jeudi 29 novembre 2007 à 14:00:42 | Re : libérartion d un objet crée dynamiquement

Loda

Membre Club
re,

je persiste à dire qu'un TComponentList c'est facile, propre souple et sur.

bon code,

Loda

Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.

jeudi 29 novembre 2007 à 15:59:13 | Re : libérartion d un objet crée dynamiquement

Keneda

Salut à tous

jvous donne un pti exemple de code, ça devrai vous aider à mieux comprendre ;-)

ps: on a bien compris ton message Zaydoun_391, faut pas écouter tous ces gens
qui pensent tout savoir et ne font que faire des reproches (quoi je suis en train de faire pareil ?)
oui et alors ? Moi je sais tout :o) la preuve:


// bon la procedure CreationBoutons n'est ici qu'un exemple, Zay tu peux garder la tienne qui doit être bien écrite ;-)
// j'explique juste ici à quoi servent certaines propriétés et paramètres
procedure TForm1.Creationboutons;
var MonButton: TButton;
begin
   LibererBoutons;  // on appel avant la libération au cas ou on reviens dessus plusieurs fois (voir code plus bas)
   { un premier bouton }
   MonButton := TButton.Create(nil);  // dans le create tu as un paramètre que l'on nomme le aowner
   MonButton.Caption:= 'Ok';             // si tu place le aowner à nil, cela signifie que c'est toi qui va libérer 
   MonButton.Left     := 10;                // ton objet. Dans le cas contraire si par exemple tu met Self 
   MonButton.Top    :=  10;                // ton objet sera libéré en même temps que ton self (donc ici TForm1)
   MonButton.Parent:= MonPanel;     // la faut mettre le bon parent (c'est à dire l'objet qui va recevoir ton bouton
   MonButton.Visible:= True;             // si tu veux qu'il apparaisse sur ton TForm, tu peux mettre Self)
   MonButton.ModalResult:= mrOk;
   MonButton.Default:= True;

   MonButton := TButton.Create(nil); 
   MonButton.Caption:= 'Annuler';    
   MonButton.Left     := 10;              
   MonButton.Top    :=  100;             
   MonButton.Parent:= MonPanel;    
   MonButton.Visible:= True;
   MonButton.ModalResult:= mrCancel;
   MonButton.Cancel:= True;              

   // on remarque ici que j'ai pas mis de nom à mes objets, c'est pas obligé si on veut pas y accéder directement
   // sinon on faut juste s'assurer que les noms sont différent pour chaque bouton créé (perso j'utilise un compteur)
end;

// la fameuse procédure qui interresse tout le monde
procedure TForm1.Libererboutons;
var i: Integer;
     MButton: TButton;
begin
   i:= 0;
  repeat
     if MonPanel.Components[i] is TButton then   // ici je parcourt MonPanel, si tu as mis tes boutons sur le TForm, il suffit d'enlever
     begin                                                            // MonPanel. dans le source de cette méthode 
         MButton:= TButton(MonPanel.Components[i]);
         FreeAndNil(MButton);  // il vaut mieux utiliser FreeAndNil qui libère correctement un objet et le met à nil plutôt qu'un simple free
     end
     else Inc(i); 
  until (MonPanel.ComponentCount=0) or (i=MonPanel.ComponentCount);
end;

voila, j'espère que mon code aidera tout le monde, on peut l'adapter bien évidemment, des ptis malins viendront surrement critiquer
ce source, je vais pas perdre mon temps à faire un court sur la création et la libération des composants, je donne ici un pti exemple
ya plein de méthodes différentes, tout dépende de ce qu'on veut faire, de comment on le fait. On peut aussi utiliser les noms des
composants comme le dit judicieusement Mauricio

bon courage à tous


Keneda, la fusée rouge
Keneda, la fusée rouge



Cette discussion est classé dans : bouton, ke, crée, dynamiquement, libérartion


Répondre à ce message

Sujets en rapport avec ce message

comment géré l événemment d un objet bouton qui a été crée dynamiquement un objet [ par Zaydoun_391 ] j ai crée un objet dynamiquement a parir d un fichié ini et je ve savoir comment géré son évenement a partir d un simple clik ( exemple ici un bouton Liens entre un treeview et un bouton [ par develomagaly ] bonjour à tous,Voila en quelques mots mon probleme :J'utilise un Treeview que je charge à partir de Ma base de données.DONNEE INDIVIDUS   identificati Retrouver qui déclenche le PopupMenu avec bouton créées dynamiquement. [ par moldov ] Bonjour,Je vous expose mon problème ainsi que les pistes que j'ai explorées.Alors voila, je crée dans un ScrollBox des boutons dynamiquement suivant u effacer un composant crée dynamiquement [ par fidji ] Bonjour, J'ai un problème lié à la construction et destructions de composants dynamiquement.Lorsque je veux détruire le composant Crée dynamiquement un tab et y placer 2 RichEdit [ par taye78 ] Salut, j'aimerais savoir comment crée dynamiquement un tab (ds un TabbedNotebook) enfin sa encore je sais comment faire (NomDuControle.Pages.Add();) m TLabel crée dynamiquement, Position dans un Panel [ par Don0Choa ] Salut à tous, J'ai un petit problème qui doit pas être très compliqué à résoudre, en fait je crée dynamiquement des Tlabel comportants le texte d'un M instancier une fiche [ par hajeur_abd ] Salut,je  veux savoir comment acceder a une même formulaire a fin de cliquer sur un bouton,c.a.d si je clique sur le bouton 2 fois , 2 formulaire s'af Delphi 7 et MessageDlg : problème de bouton par défaut [ par informatixo ] J'ai une confirmation de suppression que je fais à l'aide d'un MessageDlg de la manière suivante et qui fonctionne très bien ! MessageDlg('Voulez-vou Page qu'on ne sait pas agrendire qu'avec la croit rouge [ par astuces_jeux ] Bonjour, J'aimerai faire un liens qui mène ver une page qu'on ne sait pas agrendire et il n'y ai que la croit rouge pas le bouton réduire ni si la fen Creer dynamiquement un TTabSheet en le calquant sur un autre... [ par leobaillard ] Bonjour, je pense que mon sujet n'est pas très clair, c'est pour cela que je m'explique : Je sui entrain de creer un navigateur web et je voudrais cr


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,373 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.