Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi PageControl, TabSheet Umrandung unsichbar machen (https://www.delphipraxis.net/52220-pagecontrol-tabsheet-umrandung-unsichbar-machen.html)

Jasmine 25. Aug 2005 15:15


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:

dfried 25. Aug 2005 15:21

Re: PageControl, TabSheet Umrandung unsichbar machen
 
Setz mal den Style des PageControl auf "tsFlatButtons", dann ist der Rahmen weg.

Gruß
Daniel

Vjay 25. Aug 2005 15:24

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:
{** 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.
PS. In der Jedi-VCL gibt es eine schöne Wizard-Komponente...

Jasmine 25. Aug 2005 15:34

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