|
Dernière réponse | ||
---|---|---|
Sujet : [Delphi] Cherche divers tips et débuggages | ||
Ciler |
|
Aperçu |
---|
Vue Rapide de la discussion |
---|
Ciler |
|
antp | mieux si on doit y accéder plusieurs fois dans la même procédure :
with TButton(MaListe.Item[0]) do begin Caption := ...; Left := ...; end; |
Ciler |
|
antp | ".Parent := " je crois que ça fait exactement pareil que le InsertControl, donc tu dois faire le RemoveControl (ou peut-être mettre le parent à nil ?)
Pour la TObjectList: TButton(MaListe.Item[0]).Caption := .... |
Ciler | :ouch: Non, je fais pas insertControl Je fais xxx = TMyButton.Create; xxx.Parent := Form1; Bon, ben je vais essayer... @Buitoni : :( TObjectList pose un problème, je n'arrive pas àaccéder aux propriétés de chaque contrôle, ce qui m'est nécessaire... |
antp | Le 1er enlève le bouton de la Form
Le 2e libère la mémoire en détruisant le bouton Si tu ne fais que libérer la mémoire (juste le 2e), le bouton "appartient" encore à la Form. Vu que la Form a la liste des composants qui lui appartiennent, à sa destruction elle détruit chacun des composants. Quand tu insères le bouton dans la Form, tu fais un InsertControl, je suppose ? À confirmer, mais j'ai déjà remarqué ça plusieurs fois, donc je pense que je n'ai pas dit trop de bêtises :D [jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo] |
Ciler |
|
antp | Ce sont des boutons que tu as insérés sur la Form ?
Si oui, il faut savoir que lorsque la Form se libère, elle libère tous ses composants ! Et si on libère deux fois la même zone mémoire... ça crashe ;) Essaie de mettre Form1.RemoveControl(MonTableaudeBoutons[i]); MonTableaudeBoutons[i].Free; |
Ciler |
|
antp |
|
Ciler |
|
Buitoni | C'est sympa ce truc ;-)
Y en a d'autres dans le genre, faut zieuter dans l'unité |
antp |
|
Buitoni |
|
Ciler | :hello: World
Etant relativement débutant en Delphi, je bloque sur les points suivants, et j'espère que vous pourrez m'aider : //Questions pipeau pour se mettre en jambe - J'ai vu sur les compos du BUpack qu'il est possible de changer l'apparence des composants non visuels (comme TBUTrayIcon) avec autre chose que la bête icone rond carré triangle. Seulement, je ne trouve pas comment faire dans l'aide. - Un PChar, ça s'initialise ? //Plus dur (enfin je crois) - Pourquoi mon appli faite sous 98 avec Delphi ne veut pas se lancer sous NT "La bibliothèque de liaison dynamique user32 est introuvable" alors que la dll est bien dans system32 ? //Là, je sèche carrément : J'ai une autre appli qui fait appel à une fonction d'une dll. Cette fonction reçoit en paramètre un pointeur vers une structure qu'elle est censée remplir. A partir de cette structure, mon appli crée un certain nombre de boutons sur la fiche à l'exécution. Dans un menu, j'ai donc mis un code qui nettoie tous les boutons éventuellement existants et l'appel àla procédure de la dll puis la création des boutons. Et c'est là que le merdier commence ! Si j'appelle le menu une fois tout est OK, Si je rapelle le menu, il efface les anciens boutons et en crée des nouveaux (pas forcement le même nombre) Là, si je re-rapelle le menu, une exception se produit dans la dll. Le truc, c'est que si je supprime le code de nettoyage des boutons, tout marche impec autant de fois que je veut :??: Pour info, mes boutons sont stockés dans MonTableaudeBoutons: array of TButton et pour les dégager je fais for i:= 0 to High(MonTableaudeBoutons) do MonTableaudeBoutons[i].Free; SetLength(MonTableaudeBoutons,0) Vous voyez ce qui peut poser problème ? |