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?