Thema: Delphi Formcreate für Frame

Einzelnen Beitrag anzeigen

LuckySpacy

Registriert seit: 2. Apr 2003
Ort: Fränkisch-Crumbach
50 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Formcreate für Frame

  Alt 25. Jul 2007, 14:34
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]
Thomas Bachmann
  Mit Zitat antworten Zitat