![]() |
PageControl, TabSheet Umrandung unsichbar machen
Hallo Liebe Delphi Freunde,
ich habe mal wieder ein Problemchen und bitte um eure Hilfe. Habe ein PageControl mit 3 TabSheets, die ich in einem Wizard verwende. Nachdem ich herausgefunden habe, wie ich die Tabs unsichtbar mache und hin und her schalte, fehlt mir eigendlich nurnoch die Möglichkeit den Rahmen drumrum unsichtbar zu machen. Bei einem Panel setze ich BevelInner und BevelOuter auf Null, aber bei einem TabSheet ??? Habe auch schon versucht die canvas.pen.color:=clWhite zu setzen, aber ohne Erfolg. Über Tips und Hilfestellungen würde ich mich sehr, sehr freuen. Danke. Jasmine :cat: |
Re: PageControl, TabSheet Umrandung unsichbar machen
Setz mal den Style des PageControl auf "tsFlatButtons", dann ist der Rahmen weg.
Gruß Daniel |
Re: PageControl, TabSheet Umrandung unsichbar machen
Dies ist so einfach leider nicht möglich.
Du müsstest das Control subclassen um dies zu erreichen. Eine andere Möglichkeit wären wohl Hooks, die ich persöhnlich aber nicht so gern verwende. Ich habe dies vor Ewigkeiten schonmal selber gemacht:
Delphi-Quellcode:
PS. In der Jedi-VCL gibt es eine schöne Wizard-Komponente...
{** Enthält TPM5Seiten, dies ist ein Nachfahre von TPageControl, während der Laufzeit
werden die Reiter ausgeblendet die Seiten werden über Vor-Zurück-Buttons gesteuert.} unit Pm5SeitenUnit; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls; type TOnPaintNotify = procedure of object; {** Nachfahre von TPageControl, während der Laufzeit werden die Reiter ausgeblendet die Seiten werden über Vor-Zurück-Buttons gesteuert.} TPM5Seiten = class(TPageControl) private FOnPaintNotify: TOnPaintNotify; protected procedure WMLBUTTONDOWN(var Msg: TMessage); message WM_LBUTTONDOWN; procedure WMPaint(var Msg: TWMPaint); message WM_PAINT; procedure WMNCPaint(var Msg: TMessage); message WM_NCPAINT; public constructor create(Owner: TComponent); published property OnPaintNotify: TOnPaintNotify read FOnPaintNotify write FOnPaintNotify default NIL; end; procedure Register; implementation procedure Register; begin RegisterComponents('Volker', [TPM5Seiten]); end; constructor TPM5Seiten.create(Owner: TComponent); begin inherited; end; procedure TPM5Seiten.WMLBUTTONDOWN(var Msg: TMessage); begin if not (csDesigning in ComponentState) then begin Msg.Result:= 1; end else inherited; end; procedure TPM5Seiten.WMNCPaint(var Msg: TMessage); begin if (csDesigning in ComponentState) then inherited else Msg.Result := 1; end; procedure TPM5Seiten.WMPaint(var Msg: TWMPaint); var PS: TPaintStruct; begin if not (csDesigning in ComponentState) then begin BeginPaint(handle, PS); EndPaint(handle, PS); end else inherited; if Assigned(OnPaintNotify) then OnPaintNotify; end; end. |
Re: PageControl, TabSheet Umrandung unsichbar machen
Danke dfried,
so einfach kann Delphi sein. :-D Zuerst ging es nicht, weil ich die Tabs unten hatten, dann aber nach oben gesetzt und Style auf tsButtons gesetzt, alles ok. :kiss: Jasmine :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz