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.