Création Composant

cs_kinay Messages postés 20 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 18 février 2008 - 28 mars 2006 à 09:16
cs_kinay Messages postés 20 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 18 février 2008 - 30 mars 2006 à 10:17
Je souhaite créer un composant qui est un ComboBox mais qui affiche un
TMonthCalendar lorsque l'on clicque dessus, celui-ci s'affiche dans
l'événement OnDropDown et cela fonctionne.


Mon problème est le suivant : je n'arrive pas à récupérer la position
Left et Top du ComboBox pour pouvoir afficher mon calendrier juste en
dessous. A chaque fois, il se positionne en 0,0





Merci pour votre aide

3 réponses

Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
28 mars 2006 à 10:31
Il y a un composant de Jvcl ui fait ça.
Par contre pour ton problème :

PourTop := ComboBox1.Top; //Remplace "PourTop" par ce que tu veux
PourLeft := ComboBox1.Left;

Code fourni "brut".

@+ Matt


<HR width="100%" SIZE=2>
La paresse est la mère du génie...
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
28 mars 2006 à 16:33
dans ton composant, qui doit etre declarer : TCalendarCombo = class(TComboBox)

tu recupere Left et Top comme ceci :

var L,T : integer;
begin
L := Self.Left; {ou tout simplement L := Left}
T := Self.Top;
end;

mais ce serait trop facile, car pour disposer un element en dessous il faut faire cela :

begin
Calendar.Left := Self.Left;
Calendar.Top := Self.Top + Self.Height;

end;


<hr size="2" width="100%">
0
cs_kinay Messages postés 20 Date d'inscription samedi 30 août 2003 Statut Membre Dernière intervention 18 février 2008
30 mars 2006 à 10:17
Effectivement cela me donne la postiion du comboBox, mais lorsque je l'applique à mon Calendar, celui se positionne par rapport à l'écran et non ma fenêtre où se trouve mon ComboBox
0
Rejoignez-nous