Autor Beitrag
Desperado22
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 16.06.03 09:35 
Hallo

Ich habe eine Anwendung, in der ich auf der linke seite eine Outlookstyle-Menüführung habe. Wenn ich auf einen Menupunkt klicke, wird ein Frame von hide auf show gestzt. Nun soll dabei noch eine Aktion auf dem "FRAME" ausgeführt werden. Normalerweisse gibt es ja bei Forms die Eigenschaft "onCreate" nur gibt es die beim Frame nicht und onShow ja auch nicht. Also muss ich doch irgendwie einen Parameter mitgeben können der mir genau eine procedure von dem Frame aufruft.

Kann mir jemand sagen, wie ich das machen kann?
:oops:

_________________
Gruss

Desperado22
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mo 16.06.03 09:47 
Hi,

dann verpasse doch dem Frame einen Constructor Create. Ist ganz einfach:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
type
  TFrame1 = class(TFrame)
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create; override;
  end;

//...................................

constructor Create;
begin
  inherited Create;
  
  //  deine Anweisungen

end;


MFG

- Ernesto
Desperado22 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Mo 16.06.03 09:56 
Titel: Hei
Ok werde das mal ausprobieren.

Also diese Funktion wird automatisch ausgeführt wenn es von
Frame1 (hide) auf (show) gesetzt wird?

_________________
Gruss

Desperado22
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mo 16.06.03 10:08 
@mods: bitte löschen, doppelt


Zuletzt bearbeitet von ErnestoChe am Mo 16.06.03 10:14, insgesamt 1-mal bearbeitet
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mo 16.06.03 10:09 
Hi,

Nein. Nur beim Erstellen. Das OnShow musst Du auch selbst implemetieren. Das geht so ähnlich:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
type 
  TFrame1 = class(TFrame) 
  private 
    { Private-Deklarationen } 
  public 
    { Public-Deklarationen } 
    constructor Create; override; 
    procedure Show(Sender: TObject); override;
  end; 

//................................... 

constructor TFrame1.Create; 
begin 
  inherited Create; 
   
  //  deine Anweisungen 

end;

procedure TFrame1.Show(Sender: TObject); 
begin 
  inherited Show(Self); 
   
  //  deine Anweisungen 

end;


MFG

- Ernesto -
AndyB
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1173
Erhaltene Danke: 14


RAD Studio XE2
BeitragVerfasst: Mo 16.06.03 10:47 
Sollte es nicht
constructor Create(AOwner: TComponent); override;
heißen?

_________________
Ist Zeit wirklich Geld?
ErnestoChe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 528

Win 2000 pro, CRUX 2.0
Delphi 6 Pers, Open K3
BeitragVerfasst: Mo 16.06.03 14:23 
Hi,

@AndyB
Ja stimmt. Hab es auf die schnelle hingetippt und hatte grad kein Delphi zur Hand. Er braucht aber ohnehin nur das OnShow-Ereignis

@Desperado22
In meinem Code ist noch ein Fehler; OnShow kann man nicht überschreiben. Hier nochmal der korrekte, funktionierende Code, habs getestet:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
type
  TFrame2 = class(TFrame)
    ShellTreeView1: TShellTreeView;
    Splitter1: TSplitter;
    ShellListView1: TShellListView;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    constructor Create(AOwner: TComponent); override;
    procedure Show;
  end;

implementation

{$R *.dfm}

constructor TFrame2.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  //  deine Anweisungen
end;


procedure TFrame2.Show;
begin
  inherited Show;

  MessageBox(Self.Handle, 'OnShow wurde ausgelöst', '', MB_OK);
end;


MFG

- Ernesto -