Hi Messie!
Nimm die Breite des textes bis zum Mittelpunkt des Punktes.
also (Textbreite bis punkt) + (halbe punktbreite)
dann denk dir eine position aus, wo der punkt immer stehen soll, also z.b. an Y=100 ;
dieses Y-Textbreite und dann aufs canvas schreiben.
hmmm.. war warcheinlich nicht so super beschrieben. Vielleicht hilft der codeschnipsel weiter. hab das ganze an einer Listbox ausprobiert.
Delphi-Quellcode:
procedure TForm1.LBDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
iPunktMittel:Integer;
iBreiteBisPunktMittel:Integer;
iPunktSollPosition:Integer;
begin
iPunktMittel:=LB.Canvas.TextWidth(copy(lb.Items[index],1,pos('.',lb.Items[index])))
-LB.Canvas.TextWidth(copy(lb.Items[index],1,pos('.',lb.Items[index])-1));
iBreiteBisPunktMittel:=LB.Canvas.TextWidth(copy(lb.Items[index],1,pos('.',lb.Items[index])-1))+trunc(iPunktMittel/2);
iPunktSollPosition:=100;
LB.Canvas.TextOut(iPunktSollPosition-iBreiteBisPunktMittel,Rect.Top,lb.Items[index]);
end;
vielleicht hilfts
//Edit: formatierung geändert