Autor Beitrag
Janus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 08.03.03 11:39 
Hallo Leute, ich habe ein Problem mit folgendem Code, er lässt sich zwar Problemlos compilieren, doch das Programm wird nicht beendet, wenn der Datenbank - Server nicht ereichbar ist...

Ausserdem:
Gibt es eine Möglichkeit try except und finally zu kombinieren ?

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TMainForm.FormCreate(Sender: TObject);
begin
 // prepare database
  try
   Database.Connected := true;
   Transaction.Active := true;
  except
   on e: EIBInterBaseError do begin
    if e.Message = 'unavailable database' then MessageDlg('Es konnte keine Verbingung zum Datenbank - Server hergestellt werden ! Das Programm wird beendet !',mtWarning,[mbOk],0);

    Close;
   end;
  end;
end;


Gruss Ishildur

_________________
Don't give in the hate, that leaves to the dark side of the force !!!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 08.03.03 12:31 
Du musst bei Exceptions aufpassen. Wenn Du das Programm in der IDE testest, werden die Exceptions trotzdem gemeldet. Das kannst Du aber ausschalten: bei Delphi 6 Personal --> Tools --> Debugger-Optionen --> Sprach-Exceptions --> "Bei Delphi-Exceptions stoppen" AUS

Vielleicht hilft das?

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 08.03.03 12:31 
Du kannst in FormCreate kein Close anwenden, da daß Formular noch nicht existiert. Es wird erst nach dem letzten Befehl erstellt. Also kein Close in Create.

Auf die Schnelle würde ich sagen, daß du am besten eine globale Variable nimmst und sie in FormCrate auf True oder False setzt. Dann fragst du in FormActivate die Variable ab und führst Close aus.

_________________
Popov
Jack Falworth
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 222

Win XP Pro, Slackware 10.0
D5 Enterprise, C++, ABAP
BeitragVerfasst: Sa 08.03.03 12:35 
und:
try except und finally lassen sich so verknüpfen:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
   try
    try
     machedies;
    except
     machedas;
    end;
   finally
    machejenes;
   end;


Benutze ich oft bei Dateioperationen.

MfG

Jack Falworth

_________________
Andere zu kritisieren ist mitunter eine Möglichkeit, sich selbst ins bessere Licht zu setzen.
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 08.03.03 12:36 
Peter Lustig hat folgendes geschrieben:
Du musst bei Exceptions aufpassen. Wenn Du das Programm in der IDE testest, werden die Exceptions trotzdem gemeldet. Das kannst Du aber ausschalten: bei Delphi 6 Personal --> Tools --> Debugger-Optionen --> Sprach-Exceptions --> "Bei Delphi-Exceptions stoppen" AUS

Vielleicht hilft das?

MfG,
Peter


Würde ich nie einen empfehlen. Wir hatten doch letztens do einen Fall in dem einer es so gemacht hat und deshalb auch keine Fehlermeldungen bekommen hat. Er hat sich dann nur gewundert wieso einiges nicht funktionierte. Und Fehlermeldungen gibt es auch nicht - meiner er. Man denkt später nicht mehr drann, daß man die Meldungen abgeschaltet hat.

_________________
Popov
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 08.03.03 12:49 
Zitat:
Wir hatten doch letztens do einen Fall in dem einer es so gemacht hat und deshalb auch keine Fehlermeldungen bekommen hat.
Ich habe das bei mir abgeschaltet und wenn ich z.B. einen String in einen Integer umwandeln will und keinen eigenen try-except-Block habe, dann bekomme ich sehr wohl eine Fehlermeldung.

Ich hatte noch nie Probleme damit.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 08.03.03 13:02 
Klar kann man die Meldungen nur für den Try Block abschalten.

Was aber das Abschalten im allgemeinen angeht, so benutze ich es nie. Mag sein, daß ich in der Hinsicht ein wenig eigen bin, aber ich versuche meine möglichen Fehlerquellen vorher abzufragen. Somit brauch ich theoretisch auch kein Try-Block, da er eigentlich nie zum Einsatz kommt. Ich benutze ea aber trotzdem, da ich auch nicht perfekt bin und nicht immer an alles denke. Wenn dann also irgendwann, trotz des Try-Blocks, eine Fehlermeldung kommt, dann wird sie ausgemerzt und kommt nie wieder vor. Deshalb hab ich nicht dagegen wenn eine Meldung trotz Try-Blocks kommt. Deswegen gehe ich immer davon aus, daß es andere auch so machen.

_________________
Popov
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 08.03.03 13:15 
Zitat:
Was aber das Abschalten im allgemeinen angeht, so benutze ich es nie.
Tue ich auch nicht. Und so, wie ich es gepostet habe, ist es das auch nicht,

Zitat:
Mag sein, daß ich in der Hinsicht ein wenig eigen bin, aber ich versuche meine möglichen Fehlerquellen vorher abzufragen.
Das ist nicht eigen, sondern normal. Aber das geht nicht immer. Wenn der Benutzer in ein Edit-Feld eine Zahl eintragen soll und ich die dann verwenden will, dann brauche ich einen Try-Except-Block. StrToIntDef oder so geht auch nicht immer, denn man kann dem Benutzer ja nicht vorschreiben, welche Zahl statt dessen verwendet werden soll. Da muss man schon eine Fehlermeldung ausgeben! Und das will ich dann auch testen können, deswegen finde ich es sinnvoll, die Meldungen für try-except abzuschalten.

Zitat:
Deshalb hab ich nicht dagegen wenn eine Meldung trotz Try-Blocks kommt. Deswegen gehe ich immer davon aus, daß es andere auch so machen.
Kein Kommentar.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 08.03.03 14:37 
Peter Lustig hat folgendes geschrieben:
... StrToIntDef oder so geht auch nicht immer, denn man kann dem Benutzer ja nicht vorschreiben, welche Zahl statt dessen verwendet werden soll. ...


Hast schon recht, aber es gibt immer eine Möglichkeit. Ich hab mal was zu Konvertierung in der FAQ geschrieben.

www.delphi-forum.de/...ic.php?p=37474#37474

Eine Möglichkeit zu prüfen ob Sting eine Zahl ist - ohne Try-Except.

_________________
Popov
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Sa 08.03.03 14:51 
Okay, die Möglichkeit kannte ich nicht. Werde ich aber sicherlich sehr zu schätzen lernen. Dann braucht man try-except wirklich sehr selten.

Trotzdem bin ich der Meinung: wenn ich schon einen try-except-Block verwende, dann soll er doch bitte auch benutzt werden. Denn auch der Code, der dort drin steht, soll ja getestet werden!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Sa 08.03.03 15:21 
Natürlich existiert das Formular im OnCreate-Ereignis schon, sonst könnte man schließlich nicht auf die Objekt-Felder zugreifen! Um ein Formular bereits im OnCreate-Ereignis zu schließen benutze ich immer folgenden Code:
ausblenden Quelltext
1:
PostMessage(Handle, WM_CLOSE, 0, 0);					

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 08.03.03 16:00 
Inwieweit das Formular bereits existiert, läßt sich sicherlich gut streiten. Aber beachte bitte was da steht: Create. Daß die Felder als erstes positioniert werden ist klar. Deshalb ist der Zugriff auf ein Edit Feld kein Beweis, daß das Formular bereits fertig ist. Hier ein Zitat aus der OH:

Zitat:
Das Ereignis OnCreate wird beim Erzeugen des Formulars ausgelöst.


Wieso jetzt WM_CLOSE bei SendMessage nicht funktioniert und bei PostMessage doch, kann ich auch nur spekulieren. Ich bin kein API Experte. Ich tippe aber drauf, daß SendMessage sofort abgearbeitet wird und Postmessage erst mit einer Verzögerung.

Das hier funktioniert:

ausblenden Quelltext
1:
2:
3:
4:
procedure TForm1.FormCreate(Sender: TObject);
begin
  PostMessage(Handle, WM_CLOSE, 0, 0);
end;


das nicht

ausblenden Quelltext
1:
2:
3:
4:
5:
procedure TForm1.FormCreate(Sender: TObject);
begin
  PostMessage(Handle, WM_CLOSE, 0, 0);
  Application.ProcessMessages;
end;


Ich schätze also, daß PostMessage(Handle, WM_CLOSE, 0, 0) erst in onActivate oder OnShow ausgeführt wird.

_________________
Popov
Janus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 08.03.03 19:06 
So ich schätze, nun bin ich für einmal in der Lage, euch was beizubringen... :D Es ist so ähnlich wie du vermutet hast:
SendMessage ruft die Nachrichten Prozedur sofort auf, während PostMessage die Nachricht an die Messagequeue anhängt...

Gruss Ishildur

_________________
Don't give in the hate, that leaves to the dark side of the force !!!
Janus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Sa 08.03.03 19:27 
Was ich allerdings nicht verstehe ist, warum PostMessage(Handle,WM_DESTROY,0,0) oder DestroyWindow(Handle) nicht funktionieren.

Ich musste mit schrecken feststellen, dass WM_CLOSE nämlich noch einen Gefährliche Falle ist: onDestroy wird nämlich nicht mehr aufgerufen, mit anderen Worten wird der in onCreate bis zu der Exception reservierte Speicher nicht mehr freigegeben... :roll:

Gruss Janus

_________________
Don't give in the hate, that leaves to the dark side of the force !!!
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: Sa 08.03.03 19:46 
Titel: Brrr
Kleiner Tip aus meiner Praxis:

In der Create-Methode nie irgentwelche Close(), WM_Close o.ä. ausführen. Das bringt nur Ärger. Weil die Erstellung des Fensters i.d.R. nicht abgeschlossen ist, wenn ein Close kommt. :cry:

Besser wäre sich selbst eine Nachricht schicken, die via Postmessage() in die Queue gehängt wird.Damit ist gewährleistet, dass alle Erstellmethoden erledigt sind.
Besp:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
const wm_Start = wm_user + 10001;

type
  MeinProgramm ...
  procedure WMStart(var Msg:TMessage);Message wm_Start;
  ....

procedure .ONCreate()
...
  PostMessage(Self.Handle,wm_Start,0,0);
end;

Procedure .WMStart();
  ...
  close; // kann gefahrlos aufgerufen werden.
  ...

grüsse
MSCH

Moderiert von user profile iconKlabautermann: Code-Tags hizugefügt.
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: Sa 08.03.03 21:01 
Nein, es lässt sich nicht darüber streiten, ob die Form im OnCreate-Ereignis existiert. Sie existiert auf jeden Fall! Der Constructor ist zum Zeitpunkt des OnCreate-Ereignisses zwar noch nicht abgeschlossen, aber das Objekt ist instanziert und initialisiert!
Zitat:
SendMessage ruft die Nachrichten Prozedur sofort auf, während PostMessage die Nachricht an die Messagequeue anhängt...

Korrekt... bei SendMessage wird die Message sofort bearbeitet. SendMessage kehrt erst zurück, wenn die Message abgearbeitet wurde (was eine Gefahr sein kann, wenn das betroffene Fenster nicht mehr reagiert -> Deadlock). PostMessage legt die Nachricht nur in der MessageQueue ab und kehrt sofort zurück.
Außerdem funktionieren bei mir beide Varianten, sowohl mit SendMessage als auch mit PostMessage.

Und dass bei WM_CLOSE OnDestroy nicht aufgerufen wird ist auch nicht möglich. Der Message-Handler von WM_CLOSE macht nämlich auch nichts anderes als die Methode Close aufzurufen:
ausblenden Quelltext
1:
2:
3:
4:
procedure TCustomForm.WMClose(var Message: TWMClose);
begin
  Close;
end;

OnDestroy wird IMMER ausgelöst, auch bei Application.Terminat, obwohl das die API-Funktion PostQuitMessage aufruft welche eine WM_QUIT Message schickt, weshalb in diesem Fall kein OnClose Ereignis mehr ausgelöst wird.

@MSCH: wo ist jetzt der Unterschied ob ich zuerst eine benutzerdefinierte Message per PostMessage abschick, die mir die Methode Close aufruft, oder gleich WM_CLOSE wodurch auch nur die Methode Close aufgerufen wird?

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: Sa 08.03.03 21:20 
Motzi hat folgendes geschrieben:
Nein, es lässt sich nicht darüber streiten, ob die Form im OnCreate-Ereignis existiert. Sie existiert auf jeden Fall! Der Constructor ist zum Zeitpunkt des OnCreate-Ereignisses zwar noch nicht abgeschlossen, aber das Objekt ist instanziert und initialisiert! ...


Das das Formular als solches bereits existiert war nie die Frage. Es ist da, sonst könnten keine Elemente drauf abgelegt oder gefüllt werden. Allerdings ist das MainForm nicht ein Formular wie jedes andere und eine Reise ist erst dann zu ende wenn man den letzten Schritt getan hat. Das Formular ist also erst dann fertig wenn wenn die letzte Anweisung abgearbeitet wurde. Das gleiche ist mit OnShow. Es ist nicht am anfang der Prozedur sichtbar und auch nicht in der mitte. Es ist erst zu Schluß sichtbar.

_________________
Popov
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: So 09.03.03 15:50 
Popov hat folgendes geschrieben:
Allerdings ist das MainForm nicht ein Formular wie jedes andere..

Aha.. sondern?!?

Zitat:
und eine Reise ist erst dann zu ende wenn man den letzten Schritt getan hat. Das Formular ist also erst dann fertig wenn wenn die letzte Anweisung abgearbeitet wurde.

Jetzt könnten wir anfangen zum philosophieren.. wann ist denn die letzte Anweisung abgearbeitet?!? :wink:
Zitat:
Das gleiche ist mit OnShow. Es ist nicht am anfang der Prozedur sichtbar und auch nicht in der mitte. Es ist erst zu Schluß sichtbar.

Das ist schon richtig.. aber das Formular existiert trotzdem. Mag sein, dass für dich nicht die Frage war ob das Formular als solches bereits existiert oder nicht, aber die Aussage "Du kannst in FormCreate kein Close anwenden, da daß Formular noch nicht existiert" klingt doch irgendwie sehr danach...

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!
Popov
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 1655
Erhaltene Danke: 13

WinXP Prof.
Bei Kleinigkeiten D3Pro, bei größeren Sachen D6Pro oder D7
BeitragVerfasst: So 09.03.03 17:04 
Liest du dir überhaupt meine Beiträge durch? Ich hab doch mal die Borlandhilfe zitiert:

Zitat:
Das Ereignis OnCreate wird beim Erzeugen des Formulars ausgelöst.


Das hört sich für mich nicht so als ob da stehen würde: "wird nach Erzeugen des Formulars ausgelöst.". Für mich ist bei Create das Formular noch nicht erzeugt. Ist für dich ein Gebäude ohne Dach bereits ein Haus oder immer noch eine Baustelle? Also werde ich jetzt nicht groß anfangen zu diskutieren ob ich mit meinem "Du kannst in FormCreate kein Close anwenden, da daß Formular noch nicht existiert" richtig oder falsch liege. Wenn es existieren würde, dann könnte man es mit Close schließen. Ich werde es also auch in Zukunft behaupten.

Zitat:
wann ist denn die letzte Anweisung abgearbeitet?!?


Oh je, soll ich dir jetzt sagen was eine Anweisung ist?

Zitat:
Allerdings ist das MainForm nicht ein Formular wie jedes andere..

Aha.. sondern?!?


Z.B. wird beim Schleißen der Mainform auch die Application beendet.

Aber weil du Spaß am zitieren hast ...

Zitat:
Um ein Formular bereits im OnCreate-Ereignis zu schließen benutze ich immer folgenden Code:


Wie schon gesagt, ich glaube nicht, daß die Message in OnCreate ausgeführt wird. Deshalb ist deine Aussage falsch (auch wenn ich wissen könnte was du gemeint hast. Aber ich stelle mich mal genauso dumm an wie du.)

Außerdem bin ich mir immer noch nicht sicher ob ich den Tip mit PostMessage in Zukunft anwenden sollte. Nur weil es durch Zufall funktioniert, bedeutet es nicht, daß es immer funktioniert.

_________________
Popov
Motzi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2931

XP Prof, Vista Business
D6, D2k5-D2k7 je Prof
BeitragVerfasst: So 09.03.03 17:53 
Popov hat folgendes geschrieben:
Liest du dir überhaupt meine Beiträge durch?

Selbstverständlich les ich mir deine Beiträge durch!

Zitat:
Ich hab doch mal die Borlandhilfe zitiert:

Zitat:
Das Ereignis OnCreate wird beim Erzeugen des Formulars ausgelöst.


Das hört sich für mich nicht so als ob da stehen würde: "wird nach Erzeugen des Formulars ausgelöst.". Für mich ist bei Create das Formular noch nicht erzeugt. Ist für dich ein Gebäude ohne Dach bereits ein Haus oder immer noch eine Baustelle? Also werde ich jetzt nicht groß anfangen zu diskutieren ob ich mit meinem "Du kannst in FormCreate kein Close anwenden, da daß Formular noch nicht existiert" richtig oder falsch liege. Wenn es existieren würde, dann könnte man es mit Close schließen. Ich werde es also auch in Zukunft behaupten.

Nein.. aber um mal bei dieser Abstraktion zu bleiben.. wenn ein Haus ein OnCreate-Ereignis hätte, dann würde dieses ausgelöst werden, wenn das Haus fertig, alles geputzt und aufgeräumt wäre und die Arbeiter sich gerade verabschieden... :wink:

Denn OnCreate wird in TCustomForm.AfterConstruction aufgerufen. Ich hab jetzt irgendwo im Forum gelesen, dass du Delphi3 verwendest. In diesem Fall wird OnCreate direkt im Konstruktor von TCustomForm aufgerufen. Und um jetzt ebenfalls mal die Hilfe zu zitieren:
Delphi-Hilfe hat folgendes geschrieben:

TCustomForm.AfterConstruction
Generates an OnCreate event.

procedure AfterConstruction; override;

Description

AfterConstruction is called after the form?s constructor is finished. Do not call it explicitly in applications. TCustomForm overrides AfterConstruction to generate an OnCreate event if OldCreateOrder is False.


Zitat:
Oh je, soll ich dir jetzt sagen was eine Anweisung ist?

Eigentlich war das eher ironisch gemeint, aber.. ja, ich bitte darum!

Zitat:
Z.B. wird beim Schleißen der Mainform auch die Application beendet.

Korrekt. Das heißt aber nicht, dass die MainForm jetzt was anderes ist. Die MainForm ist im Endeffekt auch nur ein Objekt, dass von TForm abgeleitet wurde und die Application wird nur beendet, weil in der Close-Methode von TCustomForm folgender Code steht:
ausblenden Quelltext
1:
if Application.MainForm = Self then Application.Terminate					


Zitat:
Wie schon gesagt, ich glaube nicht, daß die Message in OnCreate ausgeführt wird. Deshalb ist deine Aussage falsch (auch wenn ich wissen könnte was du gemeint hast. Aber ich stelle mich mal genauso dumm an wie du.)

Wenn ich jetzt auch so kleinlich wäre wie du würde ich sagen, dass eine Message gar nicht ausgeführt werden kann! :wink:
Nein, mal im Ernst. PostMessage wird sehr wohl im OnCreate-Ereignis ausgeführt (was sonst), aber wie bereits geschrieben legt PostMessage die Nachricht nur in der Message-Queue ab und kehrt sofort wieder zurück. Dh: PostMessage wird aufgerufen -> Message wird abgelegt -> PostMessage kehrt zurück -> Code wird normal weiter ausgeführt bis die WndProc bei der WM_CLOSE Message ankommt -> Message-Handler von WM_CLOSE ruft die Methode Close auf -> Fenster wird geschlossen.

Zitat:
Außerdem bin ich mir immer noch nicht sicher ob ich den Tip mit PostMessage in Zukunft anwenden sollte. Nur weil es durch Zufall funktioniert, bedeutet es nicht, daß es immer funktioniert.

Wieso durch Zufall?!? Aber bitte.. ob dus verwendest oder nicht ist schließlich immer noch deine Entscheidung.

PS: Wenn du diese Diskussion sachlich weiterführen möchtest gerne.. andernfalls wär ich aber dafür es dann damit zu belassen!

_________________
gringo pussy cats - eef i see you i will pull your tail out by eets roots!