Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie kann ein Button sich selbst freigeben? (https://www.delphipraxis.net/119874-wie-kann-ein-button-sich-selbst-freigeben.html)

Helmi 2. Sep 2008 20:06

Re: Wie kann ein Button sich selbst freigeben?
 
Über eine lokale Variable gehts nicht.

Gut - ist auch nicht so schlimm, denn ich ruf PostMessage in einer procedure auf, der eine Konstante mit übergeben wird.

Delphi-Quellcode:
Procedure TMyForm.Sende_Nachricht(const S: String);
Begin
  PostMessage(Handle,WM_DESTROYPANEL, Integer(@S[1]), 0);
End;
(das soll nur ein Beispiel darstellen)

Bernhard Geyer 2. Sep 2008 20:13

Re: Wie kann ein Button sich selbst freigeben?
 
Zitat:

Zitat von Helmi
Ich hätt dazu nur eine Frage. Kann man der Windows-Message noch einen String mitgeben?

Bei Messages innerhalb der Anwendung würde das gehen wenn du eine globale Variable nimmst die nicht beim verlassen der Methdoe aufgrund der automatischen Referenzzählung wieder freigegeben wird.

Helmi 2. Sep 2008 20:17

Re: Wie kann ein Button sich selbst freigeben?
 
Ich brauchs auch nur intern

sirius 3. Sep 2008 07:59

Re: Wie kann ein Button sich selbst freigeben?
 
Oder du nimmst einen PString:
Delphi-Quellcode:
Procedure TMyForm.ButtonClick (Sender : TObject);
var
  S: PString;
Begin
  new(s);
  S^ := 'hallo';
  if not PostMessage(Handle,WM_DESTROYPANEL, Integer(S), 0) then
    dispose(S); //falls die MEssage nicht funktioniert hat
end;

Procedure TMyForm.CMDestroyPanel(Var Msg : TMessage);
var S:Pstring;
Begin
  S:=pointer(msg.wparam); //Du kannst auch einen eigenen Record anstatt TMessage nehmen
  FreeAndNil (ThePanel);

  if S<>nil then
  begin
    ShowMessage(S^);
    Dispose(S);
  end;
End;

angos 3. Sep 2008 09:10

Re: Wie kann ein Button sich selbst freigeben?
 
Hi,

Auch von mir nochmal einen herzlichen Dank für diese Lösung. Die werde ich mir jetzt auch mal anschauen. Ich habe dazu, sagen wir "nicht schönen Code" verwendet, den ich aus diesem Grund auch nicht posten werden :mrgreen:

Gibt es eigentlich ein empfehlenswertes Tutorial für das Arbeiten mit Messages?


Gruß
Ansgar

sirius 3. Sep 2008 13:30

Re: Wie kann ein Button sich selbst freigeben?
 
Zitat:

Zitat von angos
Gibt es eigentlich ein empfehlenswertes Tutorial für das Arbeiten mit Messages?

Weiß nicht genau. Ggf. mal nach nonVCL Tuts schauen. Denn dort sind Messages enorm wichtig, weil sie ja auch das Werkzeug von Windows sind.

sirius 4. Sep 2008 19:07

Re: Wie kann ein Button sich selbst freigeben?
 
Auf die Frage zu den MEssages habe ich etwas schönes gefunden:
Messages
Da steht auch wie die Message Queue aufgebaut ist und wie sie abgearbeitet wird (mit welchen Prioritäten)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:59 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz