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 32
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
Rejoignez-nous