Выравниваем содержимое TCombobox по правую сторону
Автор: www.delphicode.ru
К примеру, вы используете в компоненте Combobox числовой список, причем числа с дробной частью. Уместно было бы применить выравнивание списка по правую сторону для более удобного визуального восприятия.
Сделать это довольно просто. Рассмотрим пример: поместим на форму компонент TCombobox, зайдем в свойсво Items (добавим несколько числовых записей). После чего в обработчике событий формы OnCreate запишем:
procedure TForm1.FormCreate(Sender: TObject) ; begin ComboBox1.Style := csOwnerDrawFixed; end;
а в обработчике событий OnDrawItem компонента TCombobox добавим:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState) ; var x: Integer; txt: String; begin with ComboBox1 do begin Canvas.FillRect(Rect) ; txt := Items[Index]; x := Rect.Right - Canvas.TextWidth(txt) - 4; Canvas.TextOut(x, Rect.Top, txt) ; end; end;