Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#1

TabSet und tsOwnerDraw

  Alt 18. Apr 2014, 16:02
Ich hab ein Programm das enthält die Komponente TabSet, und die wirkt mit dem Windows 3.1 Look etwas deplatziert. Also wollte ich das Aussehen aufpeppen und die Tabs unter DrawTabs selbst zeichnen, nur klappt das irgendwie nicht. Inzwischen weiß ich nicht ob das überhaupt geht.

Zuletzt habe ich das Beispiel unten geschrieben, das beim letzten Tab die gesamte Canvas von TabSet löscht. Eigentlich sollte die ganze Fläche danach leer sein. Und siehe da, danach wird noch ein Tab gezeichnet.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  TabSet1.Style := tsOwnerDraw;
  for i := 0 to 5 do
    TabSet1.Tabs.Add(StringOfChar(Chr(i + 65 ), i + 1));
end;

procedure TForm1.TabSet1DrawTab(Sender: TObject; TabCanvas: TCanvas;
  R: TRect; Index: Integer; Selected: Boolean);
begin
  with TabSet1, TabCanvas do
    if Index = (FirstIndex + VisibleTabs - 1) then
      FillRect(ClipRect);
end;
Nun stellt sich mir die Frage ob man die Tabs neu zeichnen kann und ich nur etwas übersehe, oder ob das überhaupt nicht geht?
  Mit Zitat antworten Zitat