Einzelnen Beitrag anzeigen

Vjay

Registriert seit: 2. Dez 2003
Ort: Berlin/Eschede
481 Beiträge
 
Delphi 7 Professional
 
#3

Re: PageControl, TabSheet Umrandung unsichbar machen

  Alt 25. Aug 2005, 16:24
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...
Wer später bremst ist eher tot.
  Mit Zitat antworten Zitat