Affichage dans un Combobox

yannba
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010
- 3 févr. 2006 à 11:20
yannba
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010
- 4 févr. 2006 à 23:28
J'utilise un Affichage couleur dans un Combobox.
Tout est paramétrée en police 8 (font.size:=8).


Tout marche mais lorsque l'utilisateur change la taille de police, le texte dans mon combobox se chevauche ...
Comment faire pour décaler le texte plus bas, en sachant que le choix de la taille est max 12 (font.size:=12) ?


procedure TForm2.ComboBoxCouleurDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
begin
with (Control as TComboBox).Canvas do
begin
FillRect(Rect);
TextOut(30, Rect.Top,ComboBoxCouleur.Items[Index]);
Pen.Color := clBlack;
Brush.Color := ColorConst[Index];
Rectangle(Rect.Left + 2, Rect.Top + 2, 24,Rect.Top + 15);
end;
end;

3 réponses

cs_Delphiprog
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Membre
Dernière intervention
9 janvier 2013
33
4 févr. 2006 à 12:01
Avant d'écrire la ligne avec Textout, utilise la méthode TextHeight pour connaitre la hauteur nécessaire avec la taille de la police courante sur ton canvas.

<hr color="#008000">Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
yannba
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

4 févr. 2006 à 15:47
La propriété Style du TComboBox est à csOwnerDrawVariable.

Pour TextHeight, j'ai essayé avec OnMeasureItem dans lequel j'affectais differentes valeurs à Font.Height et je faisais un refresh ... Comme ca ne marchait pas du tout, j'ai essayé de modifier la hauteur de mes rectangles dans le combobox et ce de facon definitive en jouant avec :
Rectangle(Rect.Left + 2, Rect.Top + 2, 24,Rect.Top + 15);
Le problème est que ca ne marche que si je cliquais sur l'item ... Tu vois une solution ?
0
yannba
Messages postés
133
Date d'inscription
mercredi 4 janvier 2006
Statut
Membre
Dernière intervention
7 septembre 2010

4 févr. 2006 à 23:28
J'ai enfin une réponse qui a defaut de faire entierement ce que je veux, resoud en partie mon problème avec ItemHeight de TCombobox.
Certes, il aurait mieux valu que j'arrive a adapter en fonction de la taille de la police, mais bon, avec un case of + combobox, ca devrait le faire. Ce n'est pas de la Grande programmation, mais ca dépanne.
0