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

  FORUM HardWare.fr
  Programmation

  [Delphi 6 sniff] insérer un item dans listCheckBox à la conception...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Delphi 6 sniff] insérer un item dans listCheckBox à la conception...

n°102383
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 19-02-2002 à 16:12:34  profilanswer
 

erreur du type : "le composant "" n'a pas de fenetre parente" à l'insertion dans une fiche...
 
 
alors, après reflexion : est-ce qu'il existe un fonction appelée par delphi lorsqu'il a fini d'insérer un composant dans une fiche ?
mais il faudrait que cette fonction ne soit appellée qu'à la conception(insertion dans une fiche et non pas à l'execution(execution du programme contenant une fiche utilisant ce composant)...
 
 
 
bon je vous laisse une partie du code du composant au cas où ça vienne de là...
 
 
TExamListCheckView= class(TPanel, IExamList  
   checkList: TCheckListBox;
   panTitre: TPanel;
   titre: TLabel;
[...]
   published
      propertry aExmLstListWidth: integer read listWidth write setListWidth default 150 ;
      property aExmLstListHeight: integer read listHeight write setListHeight default 87;
 
constructor TExamListCheckView.Create(AOwner: TComponent);
begin
   inherited Create(AOwner);
 
// je donne bien des parents à tout mes composants :    
   panTitre := TPanel.Create(self);
   titre := TLabel.Create(panTitre);
   checkList := TCheckListBox.Create(self);
   panTitre.InsertControl(titre);
   InsertControl(panTitre);
   InsertControl(checkList);
 
   titre.Caption := 'Vaisseaux sélectionnés';
   titleFont := TFont.create;
   listFont := TFont.create;
 
   checkList.OnClickCheck := onClickCheckProc;
   OnResize := onResizeProc;
 
   // j'ai rajourté ces quatres lignes pour voir si ça marchait mieux...
   checkList.width := 150;
   checkList.height := 87;
   listWidth := 150;
   listHeight := 87;
 
   addExam('Vaisseaux selectionné 1 D';);
   addExam('Vaisseaux selectionné 1 G';);
 
end;
 
 
// procedure addExam :
 
procedure TExamListCheckView.addExam(examName: string);
begin
   checkList.Items.Add(examName);
end;
 
 
 
l'erreur viens de addExam... si j'enlève les deux addExam du create, le composant s'insère bien dans la fiche et on voit tous les controls, preuve que le panel de titre, le titre et le checkboxlist ont bien été inséré !
à l'éxution, pas de pb non plus... on peut même appelé addExam à l'execution...
 
alors, le truc bysarre, c que si je compile sans addExam dans le create, je peux à l'éxecution appeler la fonction addExam dans la fiche crée...
puis ensuite, si je recompile le composant en ajoutant addExam dans le create de celui ci sans supprimer son instance auparavent créée dans la fiche, 'Vaisseaux selectionné 1 D' et 'Vaisseaux selectionné 1 G' apparaissent bien dans la liste... !!
 
comment résoudre ce pb ?

 

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

mood
Publicité
Posté le 19-02-2002 à 16:12:34  profilanswer
 

n°102403
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 19-02-2002 à 16:34:54  profilanswer
 

ça a l'air de vous laisser pantois !
à l'aide antp :jap: :) !!

n°102417
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 19-02-2002 à 16:59:05  profilanswer
 

une petite réctification et un petit up au passage :
 
alors, en fait, les propriétés par défaut fonctionnent très bien...  
à la conception, si j'insère le composant dans la fiche (en enlevant le addExam dans le create du composant :( ), ça marche bien, les prop ont bien leurs valeurs par défaut...
à l'éxecution, l'appel de addExam ne pose toujours pas de pb...
 
alors, en réalité, le pb ne se pose qu'à l'insertion dans la fiche... si je mêt addExam dans le create du composant, j'obtient systèmatiquement l'erreur " le composant "" n'a pas de fenêtre parente"...
argl ! comprends pas... à l'insertion dans une fiche, delphi appelle bien la méthode create du composant  ?! est ce qu'il en appelle une autre que je pourrais redéfinir pour que ça fonctionne ??

n°102428
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-02-2002 à 17:15:51  profilanswer
 

à première vue je sais pas...
j'ai déjà eu ce genre de problème mais je sais plus comment je l'avais arrangé...
parfois c'est quand le parent est un composant n'acceptant pas d'autres compos, genre un Edit qui devient parent d'un autre machin sans qu'on lui ai dit qu'il devait accepter les autres controles.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°102431
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 19-02-2002 à 17:20:13  profilanswer
 

antp a écrit a écrit :

à première vue je sais pas...
j'ai déjà eu ce genre de problème mais je sais plus comment je l'avais arrangé...
parfois c'est quand le parent est un composant n'acceptant pas d'autres compos, genre un Edit qui devient parent d'un autre machin sans qu'on lui ai dit qu'il devait accepter les autres controles.  




 
et une fonction autre que create appelée par delphi lors de l'insertion d'un composant ? ça ne te dit rien ?
 
parceque ce que je comprend pas, c que lappel de addExam ne pose aucun pb à l'éxecution !

 

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

n°102439
antp
Super Administrateur
Champion des excuses bidons
Posté le 19-02-2002 à 17:29:23  profilanswer
 

bhen y a le Loaded qui intervient une fois que le Create est terminé
 
public
  procedure Loaded; override;


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°102452
Moustaaki
.: ILITCH :. ésprit sibérie
Posté le 19-02-2002 à 17:57:18  profilanswer
 

antp a écrit a écrit :

bhen y a le Loaded qui intervient une fois que le Create est terminé
 
public
  procedure Loaded; override;  




 
oui, mais il va aussi être appelé à la création de la fenêtre contenant le composant... et donc, mon petit texte uniquement destiné à faire un apperçu (pour appercevoir les modifications de font, c qd même plus pratique) sera là et ça ne me plait pas vraiment... mais bon, si c'est la seule solution, je m'en contenterais !
il suffira que je fasse un clear sur la liste lorsque je l'utiliserais...  
 et bien merci, en tout cas :)


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

  [Delphi 6 sniff] insérer un item dans listCheckBox à la conception...

 

Sujets relatifs
[Delphi 6.0] Créer sa propre boite de dialogue ?Oops j'ai un trou ! (Problème tout con en Delphi)
Delphi / DirectPlay ! Aidez moi j'ai plus beaucoup de temps ![DEFI DELPHI] - Delayer un buffer pour les Visualization Winamp
comment inserer la date du jour en HTML ?tableaux delphi
[Delphi]Deux questions sur les TMemo (colorier +inserer)[Delphi] Compil qui passe pas et pourtant...
[DELPHI] Création d'un bind ? 
Plus de sujets relatifs à : [Delphi 6 sniff] insérer un item dans listCheckBox à la conception...


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