So implementieren Sie eine Schließen-Schaltfläche für ein TTabsheet eines TPageControl

8

Wie kann ich eine Schließen-Schaltfläche für ein TTab-Blatt eines TPageControls wie Firefox implementieren?

Bearbeiten:
Delphi-Version: Delphi 2010
Betriebssystem: Windows XP und höher

    
Heinz Z. 04.02.2010, 17:40
quelle

4 Antworten

31

Jetzt mit Theme-Unterstützung (include Windows, UxTheme, Themes units)!

%Vor%

Sieht so aus:

    
ulrichb 04.02.2010, 19:50
quelle
6

Es ist oft eine gute Idee, dies selbst zu implementieren, wie die anderen Antworten vorgeschlagen haben. Für den Fall, dass Sie bereits Raize-Komponenten verwenden, wird diese Funktion jedoch "out of the box" unterstützt. . Setzen Sie einfach TRzPageControl.ShowCloseButtonOnActiveTab := true und behandeln Sie das OnClose -Ereignis. Die Komponente sorgt für die Platzierung für eine Vielzahl von Registerkartenlayouts / Ausrichtungen / Formen / Farben.

[nur ein glücklicher Kunde]

    
Argalatyr 04.02.2010 19:55
quelle
3

Was ich in der Vergangenheit getan habe, ist ein TBitBtn mit einer Grafik in der oberen rechten Ecke des TPageControls. Der Trick, das Elternteil des TBitBtn ist das gleiche wie das TPageControl, also ist es nicht wirklich auf einer der Registerkarten. Dann im Klick sogar für diesen Knopf:

%Vor%

Wenn das aktuelle TTabControl freigegeben wird, benachrichtigt es das TPageControl, das es besitzt.

    
Jim McKeeth 04.02.2010 19:50
quelle
0

Ich habe ein wenig dieses Beispiel geändert: - erstellte Klasse TCloseTabSheet - Diese Klasse hat die Eigenschaft OnClose: TNotifyEvent, die bei Zuweisung aufgerufen wird - Wenn TabSheet von TPageControl nicht diese Klasse ist, dann gibt es keine Schließen-Schaltfläche - wenn es dann Button zeigt. Wenn Sie die Schließen-Taste drücken, wird OnClose aufgerufen - Jetzt müssen Sie nicht mehr das Array FCloseButtonsRect steuern, damit diese Rects bei TCloseTabSheet gespeichert werden

%Vor%     
Alex 08.11.2013 16:00
quelle

Tags und Links