Autor Beitrag
r_le
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Di 08.06.04 14:00 
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:

ausblenden 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 user profile iconMotzi: Topic aus VCL (Visual Component Library) verschoben am Di 08.06.2004 um 16:27
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: 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

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
r_le Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: 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.)
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Di 08.06.04 23:12 
XP ist da wohl etwas gutmütiger und stabiler in der Hinsicht und schluckt den Fehler.
r_le Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: 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.