Entwickler-Ecke
Windows API - PostMessage
r_le - Di 08.06.04 14:00
Titel: PostMessage
Hallo!
Folgendes Problem: Ich erstelle ein Edit und lasse das dann nach dem Drücken einer Taste wieder löschen.
Hier mal grob der Code dazu:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| const WM_EditFree=WM_USER+1;
type TMyEdit=class(TEdit) private procedure EditKeyPress(Sender: TObject); procedure EditMsgHandler(var Msg: TMessage ); message WM_EditFree; public constructor Create(aOwner: TComponent); end;
constructor TMyEdit.Create(aOwner: TComponent); begin inherited Create(aOwner); OnKeyPress:=EditKeyPress; end;
procedure TMyEdit.EditKeyPress(Sender: TObject); begin PostMessage(self.Handle,WM_EditFree,0,0); end;
procedure TMyEdit.EditMsgHandler(var Msg: TMessage); begin self.Free; end; |
Unter WinXP funktioniert das ganze auch wie es soll, aber unter Win98 wird MyEdit nicht wieder gelöscht.
Kann mir jemand sagen, woran das liegt? Gibt es hinsichtlich des PostMessage bei Windows98 was, was man beachten müßte??
Moderiert von
Motzi: Topic aus VCL (Visual Component Library) verschoben am Di 08.06.2004 um 16:27
MSCH - Di 08.06.04 20:01
die frage lautet eher, kann ein Objekt sich selbst löschen oder muss das nicht der Parent machen?
grez
msch
r_le - Di 08.06.04 22:38
Naja, unter XP klappt's ja auch.
Mir ist bis jetzt noch keine andere Möglichkeit eingefallen, das Edit abhängig von einem bestimmten Eingabezeichen vom Parent zu löschen. Denn das entsprechende Ereignis kann ich ja auch nur innerhalb der Komponente auswerten.
(Ein Timer und ein Flag wär noch ne Variante, aber das ist ja nicht sonderlich elegant.)
Delete - Di 08.06.04 23:12
XP ist da wohl etwas gutmütiger und stabiler in der Hinsicht und schluckt den Fehler.
r_le - Mi 09.06.04 01:49
Hab den MessageHandler jetzt in ne andere Komponente geschrieben.
Blickt zwar nun kein Mensch mehr durch, aber hauptsache es funktioniert erstmal. :wink:
@Luckie: Ich wäre ja schon dankbar gewesen, wenn er mir wenigstens ne Fehlermeldung gebracht hätte.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!