Identification d'un composant Parent

Résolu
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 - 20 mai 2013 à 09:35
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 - 24 mai 2013 à 16:10
Bonjour,

J'écrit un composant et j'ai besoin d'identifier son composant Parent au moment ou je le dépose quelque part.

Déclaration du composant:

type
  TQuest = class(TCustomControl)
  Private 
  ...  
  _ParentCtrl  : TComponentName;
  public
  ...
  Constructor Create(AOwner: TComponent);override;
  ...
End;


Pour Dimensionner correctement le composant au moment de l'exécution (au moment du dépot il a une surface par défaut de 200 x 300), j'identifie le composant dès le create:

Constructor TQuest.Create(AOwner : TComponent);
Begin
  inherited Create(AOwner);
  inherited Width := 200;
  inherited Height:= 300;
  Parent       := AOwner as TWinControl;
  _ParentCtrl  := Parent.Controls[0].Name;
...

End;


Questions :

1. Est-ce l'affectation de Parent := est correcte?
Si je fais showmessage(inttostr(Parent.Width)), il ne semble pas me donner la bonne largeur du composant parent;

2. Je récupère bien le nom du Parent dans
_ParentCtrl, mais j'ai utilisé un indice 0 arbitraire. Est-ce ça sera toujours vrai? A priori mon composant ne peux avoir qu'un seul parent, il est donc à l'indice zéro?

Merci

Jean_Jean
A voir également:

26 réponses

cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
23 mai 2013 à 23:30
Car, j'ai besoin dans un 2ème temps, l'état ou il va s'afficher en grandeur nature à l'exécution...


Jean_Jean
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
24 mai 2013 à 13:54
si tu nous en disais un peu plus sur tes intentions on pourrait peut être t'aider


[hr]@+Cirec
[hr]
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
24 mai 2013 à 14:24
... avec Jean_Jean, ça doit être secret-défense
: le compos qui tue
.
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
24 mai 2013 à 14:49
Continue de poser des questions Jean_Jean,
ça fait revenir Cari..

cantador
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
24 mai 2013 à 15:18
yes!

@ cantador
c'est parce qu'entre pirates, on se reconnait et qu'il aime bien lorsque je lui raconte des histoires à pas s'endormir!

@Cari
Bah, c'est pas que c'est secret-défense, mais faut que je remette les boulons en ordre de bataille !
Chaque fois que vous me répondez une ligne, vous m?en faites réécrire 100. Comme je programme en dotted time, tu vois le tableau !

Alors maintenant, j'écris presque tout ce que je fais sous forme de notes Tutoriales, sinon, je ne sais plus dans quel ordre, je boulonne. Je pourrai ainsi en faire profiter les delphistes éternellement débutants comme moi.

C'est mon premier compo ! alors ça boulonne dur ! je boulonne sur les déclenchements d'évènements des compos puisqu'il me faut identifier maintenant quel évènement je dois utiliser ou écrire lorsque je change une propriété affectant le format de ma présentation. Pour les autres propriétés simples, ça marche : couleurs, épaisseurs traits...

Par exemple, le changement dans ma propriété ZoomState doit-elle déclencher un évènement de type simple NotifyEvènement ou un évènement spécifique du genre WM_NewFormat ?

Au début, j'afficha une page par défaut à 10% de sa taille réelle. Mais le programmeur comme l'utilisateur final qui change la propriété ZoomState à zsPageWidth doit mettre à jour immédiatement ou pendant l'exécution le format sur la largeur de son Parent.

Messieurs, canonniers, rabattaient vos pièces avant que Cari le Guetteur ne vous lâche dans la fosse et vous brise vos certitudes!
le Tir est vous!

Jean_Jean
0
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 3
24 mai 2013 à 16:10
@Cirec!

Oui, ce code je l'ai écrit déjà.

Mais c'est pour ça qu'il faut que remette de l'ordre dans mon code je crois que c'est une question d'odre d'criture dans mes fonctions diverses intermédiaires que ça pêche.

J'en suis déjà à 1500 lignes!

il semble donc que le Invalidate suffise pour l'instant alors!... Bon à suivre!

Merci


Jean_Jean
0
Rejoignez-nous