Выравниваем в Delphi содержимое TCombobox по правую сторону (исходники)

Источник: delphicode

К примеру, вы используете в компоненте 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;


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=22841