Hallo Allerseits,
ich habe noch eine einfachere Methode gefunden, um einen Listboxeintrag bzgl. Listbox.clientwidth zu zentrieren:
Im Drawitem habe ich hinzugefügt:
(crect ist eine TRECT-Variable. Unnötig, aber so brauche ich das nur einmal berechnen.
l ist die letzte penpos.x. Am besten nimmt man etwas mehr oder berechnet l exakt. Damit "kursive TTs" beachtet werden.)
Delphi-Quellcode:
bmp:=Tbitmap.create;
with bmp do
try
height:=itemheight;
width:=324;
crect:=classes.rect(0,0,l,height);
canvas.CopyRect(crect,self.canvas,classes.rect(0,rect.top,l,rect.top+itemheight));
self.Canvas.FillRect(rect);
i:=(clientwidth-l) Div 2;
if i<0 then i:=0;
self.Canvas.CopyRect(classes.rect(i,rect.top,i+l,rect.Top+itemheight),bmp.canvas,crect);
finally
bmp.free
end;
Das geht schnell und einfach.
Gruß
Mattze