Thema: Delphi Listboxitem zentrieren?

Einzelnen Beitrag anzeigen

Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#14

AW: Listboxitem zentrieren?

  Alt 11. Jul 2014, 06:19
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
  Mit Zitat antworten Zitat