AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi MDI-Applikation - Ereignis bei Schließen eines Childfenster
Thema durchsuchen
Ansicht
Themen-Optionen

MDI-Applikation - Ereignis bei Schließen eines Childfenster

Ein Thema von mschaefer · begonnen am 26. Apr 2003 · letzter Beitrag vom 1. Mai 2003
 
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#6

Meine Lösung

  Alt 1. Mai 2003, 20:43
Hallo Wolfgang, hallo Chris

erst mal Danke für die Info´s. Wolgang, Du hast natürlich recht. Ein direkter Aufruf auf die Unit des MDI-Formular genügt beim schließen des Clientfensters vollkommen.

Chris muß allerdings geahnt haben wo ich hin wollte. Meine Client-
Formulare werden dynamisch erzeugt und hinterher vom Hauptformular freigegeben. Da der direkte Aufruf "Gib mich frei" beim Rücksprung ins tiefe Nirwana geht ist die Message-Variante bei mir passend.


Was nun entstanden ist hänge ich gerade noch an:

// Definition - Unit
interface
uses messages;
Type TMessage = record
Msg: Cardinal;
WParam: Longint;
LParam: Longint;
Result: Longint
end;
Const
UM_TransferData = WM_USER + 200;

implementation end.


// Senden Unit
inteface
procedure InternalWindowMessage_Send
( const WParam : integer;
const LParam : integer);

implementation

procedure TForm2.InternalWindowMessage_Send
( const WParam : integer;
const LParam : integer);
var
hReceiver : LongInt;
begin
hReceiver := FindWindow('Form1', Nil);
If IsWindow( hReceiver ) Then
Begin
PostMessage( hReceiver , UM_TransferData, WParam, LParam );
End;
End;


// oder im Client Window zum Senden an das MDI-Window
procedure TForm2.InternalWindowMessage_Send
( const WParam : integer;
const LParam : integer);
var
hReceiver : LongInt;
hReceiverName : string;
begin
hReceiverName := Owner.ClassName; { wandelt short in longstring }
hReceiver := FindWindow( PChar( hReceiverName ), Nil);
If IsWindow( hReceiver ) Then
Begin
PostMessage( hReceiver , UM_TransferData, WParam, LParam );
End;
End;


// Empfangen Unit
inteface
Procedure Receive_InternalWindowMessage( Var msg: TMessage );
message UM_TransferData;
implementation

Procedure TForm1.Receive_InternalWindowMessage
( var msg: TMessage );
Begin
Case msg.WParam of
0 : Begin
Select_MDI_Form( msg.LParam );
End;
1 : Begin
// zweite Aufgbe ...
End;
End; {Case}
End;

Soweit zu den Taten des Tages.. ..

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz