Einzelnen Beitrag anzeigen

R2009

Registriert seit: 9. Mär 2009
Ort: Heidelberg
440 Beiträge
 
Delphi 2007 Professional
 
#8

Re: Ab wann hat ein Fenster ein Handle?

  Alt 8. Jan 2010, 10:49
Hi,
so funktiert das. Form2 ist zwar erzeugt aber noch nicht dargestellt.

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  TestHandle: HWND;
begin
  // Erstellen
  TestHandle:= AllocateHWnd( form2.GetMessages); // Übergeben wird die Methode zum Empfangen der Nachricht
  SendMessage(TestHandle, SET_LNG_CMD, 0, 0 );
  // Freigeben
  DeallocateHWnd( TestHandle);
end;

public
  { Public-Deklarationen }
  procedure GetMessages(var msg: Tmessage); message SET_LNG_CMD;

procedure TForm2.GetMessages(var msg: Tmessage);
begin
  if msg.msg = SET_LNG_CMD then
  begin
    ShowMessage('Fenster 2');
  end;
end;
Jetzt reagiert das Fenster obwohl es noch nicht angezeigt wird.

Zum Hintergrund:
Wir hatten die Sprachabhängigen Texte usw immer im onactivate des entsprechenden Fensters geladen.
Das ganze wurde aus Performancegründen so gemacht. Unsere Fenster sind all modal.

Vorteil:
Jedes Fenster ist dann wenn es gebraucht wird auf dem aktuellen Stand (siehe sprachwechsel oder so).

Nachteil:
Ich muss den Code (unnötigerweise) immer wieder durchlaufen (jedesemal wenn ich das fenster öffne)

Ich plane das Ganze zentral über Botschaften zu initiieren und zwar dann wenn das Fenster erzeugt ist und auch wenn die Sprache gewechselt wird.

Danke an alle
Grüsse
Rainer
Rainer Unger
Mein Profil:
Studium Allgemeine Elektrotechnik TH Darmstadt
Entwicklung von Tools für die Rundsteuer und Zählertechnik.
uP's Atmel Prozessoren (ATmega16,32,88...) in C und Assembler.
  Mit Zitat antworten Zitat