![]() |
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:
Nun schicke ich ne Message WM_USER an das Hauptformular. Es passiert nichts. Gar nichts. Stille.
type TZweiteUnit=class(TObject);
. . . procedure WndProc(Msg:TMessage); message WM_USER; . . . procedure TZweiteUnit.WndProc(Msg:TMessage); begin ... end; Wo liegt der Fehler? [Edit]Im Hauptformular funktioniert es[/Edit] |
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 |
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.
|
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 18:28 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-2025 by Thomas Breitkreuz