Est il possible d'aligner à droite ou de centrer les textes d'une TComboBox plutôt que d'avoir l'alignement à gauche 'standard' ?
merci pour vos réponses!
Langage Borland C++ 6 et/ou Delphi
Est il possible d'aligner à droite ou de centrer les textes d'une TComboBox plutôt que d'avoir l'alignement à gauche 'standard' ?
merci pour vos réponses!
Langage Borland C++ 6 et/ou Delphi
A moins d'utiliser le style ownerdraw (dans ce cas on fait absolument ce qu'on veut), je ne crois pas que ce soit possible.
J'ai écris la macro
puis appelé cette macro depuis l'event 'OnDrawItem'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 #define RightJustify(T,Indx,Rect) \ { \ if ( Indx >= T->Items->Count) return; \ if ( Indx <0 ) return; \ AnsiString Text; \ int TextWidth, TextHeight, RectHeight; \ T->Canvas->FillRect(Rect); \ Text= T->Items->Strings[Indx]; \ Rect.Right -= 2; \ TextWidth= T->Canvas->TextWidth(Text); \ TextHeight= T->Canvas->TextHeight(Text); \ RectHeight= Rect.Bottom - Rect.Top; \ T->Canvas->TextOut(Rect.Right-TextWidth,Rect.Top + (RectHeight-TextHeight)/2,Text);\ }
Ceci fonctionne pour TComboBox (Style = csOwnerDrawFixed) et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void __fastcall TAboutBox72::Fichier_lst_1DrawItem(TWinControl *Control, int Index, TRect &Rect, TOwnerDrawState State) RightJustify(Fichier_lst_1,Index,Rect) // Common.h
TListBox ( style = lbOwnerDrawFixed )
mais n'est pas très rapide si les listes sont longues.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager