Delphi-PRAXiS

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 Stille: Direktive Message - In zweiter Unit deklariert (https://www.delphipraxis.net/36525-stille-direktive-message-zweiter-unit-deklariert.html)

dde 21. Dez 2004 11:35


Stille: Direktive Message - In zweiter Unit deklariert
 
Ich habe zwei Units. Die erste Unit enthält das Hauptformular. Die zweite Unit ist eine zugehörige Schnittstelle. Ich will Design und Algorithmen dadurch voneinander trennen.

Nun zum Problem:
Ich deklariere und implementiere in der zweiten Unit eine Message-Methode:

Delphi-Quellcode:
type TZweiteUnit=class(TObject);
.
.
.
     procedure WndProc(Msg:TMessage); message WM_USER;

.
.
.

procedure TZweiteUnit.WndProc(Msg:TMessage);
begin
...
end;
Nun schicke ich ne Message WM_USER an das Hauptformular. Es passiert nichts. Gar nichts. Stille.

Wo liegt der Fehler?

[Edit]Im Hauptformular funktioniert es[/Edit]

Sanchez 21. Dez 2004 11:52

Re: Stille: Direktive Message - In zweiter Unit deklariert
 
Soweit ich weiß, können nur Fenster auf Windows-Botschaften reagieren. Abkömmlinge von TObject jedenfalls nicht. Außerdem kann die Message nur im Hauptformular ankommen, wenn du sie dorthin schickst und nicht in TZweiteUnit.

Wenn du in deiner 2ten Klasse direkt auf Windows-Botschaften reagieren würdest, dann hättest du doch Design und Algorithmen nicht mehr wirklich getrennt.

grüße, daniel

Sprint 21. Dez 2004 11:53

Re: Stille: Direktive Message - In zweiter Unit deklariert
 
Um eine Windows Nachricht empfangen zu können, braucht man auch ein Fensterhandle. TObject hat kein Fensterhandle.

dde 21. Dez 2004 14:26

Problem gelöst!
 
Habe TObject gelöscht und stattdessen TWinControl genommen. TZweiteUnit=class(TWinControl). Es ist nicht mehr still.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz