Suppose you have a ComboBox displaying currency values, or more generally numbers. Here's how to display the items in a ComboBox right-aligned:
~~~~~~~~~~~~~~~~~~~~~~~~~
procedure TForm1.FormCreate(Sender: TObject) ;
begin
ComboBox1.Style := csOwnerDrawFixed;
//for a ListBox use "lbOwnerDrawFixed"
end;
//The OnDrawItem event handler
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;
~~~~~~~~~~~~~~~~~~~~~~~~~
Here are some more owner drawing articles:
Graphical Combos
Delphi tips navigator:
» Positioning Web controls in design view (Asp.Net - Delphi for .Net)
« How to print a document/page in a TWebBrowser

