Hi,
ich würde das Problem so lösen:
Delphi-Quellcode:
type
TFrame2 = class(TFrame)
private
FOnShow: TNotifyEvent;
procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
public
published
property OnShow: TNotifyEvent read FOnShow write FOnShow;
end;
implementation
{$R *.dfm}
{ TFrame2 }
procedure TFrame2.CMShowingChanged(var Message: TMessage);
begin
inherited;
if Showing then
if Assigned(FOnShow) then
FOnShow(Self);
end;
Somit dürfte man ein Frame um das Event OnShow erweitert haben.
Zweiter Teil (zusammenführung bitte durch den Verfasser der beiden Teile) (mit der Edit-Funktion)
Bin gerade dabei mich mit diesem Thema zu beschäftigen.
Wenn man darauf reagieren möchte, wann sich ein Frame Sichtbar oder Unsichtbar schaltet dann vielleicht so:
Delphi-Quellcode:
type
TFrame2 = class(TFrame)
Label1: TLabel;
Edit1: TEdit;
private
FOnShow: TNotifyEvent;
FOnVisible: TNotifyEvent;
FOnVisibleChanged: TNotifyEvent;
FOnHide: TNotifyEvent;
procedure CMShowingChanged(var Message: TMessage); message CM_SHOWINGCHANGED;
procedure CMVISIBLECHANGED(var Message: TMessage); message CM_VISIBLECHANGED;
public
published
property OnShow: TNotifyEvent read FOnShow write FOnShow;
property OnVisible: TNotifyEvent read FOnVisible write FOnVisible;
property OnHide: TNotifyEvent read FOnHide write FOnHide;
property OnVisibleChanged: TNotifyEvent Read FOnVisibleChanged write FOnVisibleChanged;
end;
implementation
{$R *.dfm}
{ TFrame2 }
procedure TFrame2.CMShowingChanged(var Message: TMessage);
begin
inherited;
if Showing then
if Assigned(FOnShow) then
FOnShow(Self);
end;
procedure TFrame2.CMVISIBLECHANGED(var Message: TMessage);
begin
inherited;
if Assigned(FOnVisibleChanged) then
FOnVisibleChanged(Self);
if Visible then
begin
if Assigned(FOnVisible) then
FOnVisible(Self);
end
else
begin
if Assigned(FOnHide) then
FOnHide(Self);
end;
end;
[edit=SirThornberry]Beide Ergüsse zusammengeführt - Mfg, SirThornberry[/edit]