AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi wm_close message ruft onclose nicht auf
Thema durchsuchen
Ansicht
Themen-Optionen

wm_close message ruft onclose nicht auf

Ein Thema von med95fly · begonnen am 27. Nov 2003 · letzter Beitrag vom 2. Dez 2003
Antwort Antwort
med95fly

Registriert seit: 27. Nov 2003
3 Beiträge
 
#1

wm_close message ruft onclose nicht auf

  Alt 27. Nov 2003, 15:38
Hallo Leute,

bin neu hier und hab gleich mal ne Frage an die Experten unter Euch.
Ich hab mir ein kleines Programm ausgedacht, dass in definierbaren Ruhezeiten den Computer bei Inaktivität runterfährt. Soweit so gut, das funktioniert auch alles, das Problem ist nun folgendes:

Die Hauptanwendung die auf dem Rechner läuft ist ein Oracle-Datenbank-Client. Wenn ich diesen manuell per Close-button in der Captionleiste des Hauptformulars schließe, ist alles OK, onclose wird im Programm scheinbar abgefangen und die aktive Datenbank-Session terminiert (und was sonst noch so nötig ist, um eine Datenbank am laufen zu halten)

Wenn mein kleines Programm nun eine WM_Close Message an das Hauptformular schickt, schließt sie dieses zwar auch, beim nächsten einloggen beschwert sich das Programm aber über eine nicht ordnungsgemäß terminierte Session.

Was mache ich falsch? Ruft WM_Close das OnClose Ereignis nicht auf? Das Datenbankprogramm ist nicht von mir, ich habe keinen Quellcode, aber es ist scheinbar in Delphi programmiert.

Ich grüble schon ne Weile und wäre dankbar, wenn mir einer helfen könnte.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: wm_close message ruft onclose nicht auf

  Alt 27. Nov 2003, 18:57
Moin med95fly,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Als weitere Möglichkeit könntest Du es mal mit WM_SYSCOMMAND und SC_CLOSE versuchen.
Vielleicht funktioniert's ja damit.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
med95fly

Registriert seit: 27. Nov 2003
3 Beiträge
 
#3

Re: wm_close message ruft onclose nicht auf

  Alt 28. Nov 2003, 18:07
Vielen Dank für den Tipp, hat leider aber auch nicht geklappt

Gleiches Problem: Sendmessage(Handle,WM_Close,0,0) oder (Handle,WM_Syscommand,Sc_Close,0) schließt das Datenbankprogramm irgendwie anders als wenn ich es von Hand mache.

Besser wäre sowieso, ich könnte das Abmelden fernsteuern. Dafür gibt es auf dem Hauptfomular eine Art PageControl mit dem Klassennamen "TcsNotebook". Die "Abmelden" Page (TcsPage) erreiche ich, indem ich das Tabsheet anklicke.

Wie kann man mit solchen unbekannten Klassen über das WindowsApi kommunizieren um zum Beispiel die "Abmelden" Page per Message aufzurufen?


Ps.: Eurer Forum ist das Beste das ich in Sachen Delphi kenne, großes Lob!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: wm_close message ruft onclose nicht auf

  Alt 28. Nov 2003, 18:52
Moin med95fly,

da kommt mir noch eine Idee:
Wenn sich das Programm über ALT-F4 so schliessen lässt, wie gewünscht, könntest Du diese Tastenkombination mit WM_KEYDOWN/WM_KEYUP ja an das Hauptfenster schicken.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
med95fly

Registriert seit: 27. Nov 2003
3 Beiträge
 
#5

Re: wm_close message ruft onclose nicht auf

  Alt 1. Dez 2003, 17:48
Danke für den Tipp Christian, hat prima geklappt.

Ich wusste bis jetzt zwar noch nicht, dass es da einen Unterschied zwischen den verschiedenen Close-Möglichkeiten gibt, aber man lernt nie aus.

Gruß Andreas
  Mit Zitat antworten Zitat
Benutzerbild von MyRealName
MyRealName

Registriert seit: 19. Okt 2003
Ort: Heilbronn
673 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: wm_close message ruft onclose nicht auf

  Alt 2. Dez 2003, 10:42
versuch es doch mal mit PostMessage statt SendMessage
PostMessage legt die Nachricht auf die MessageQueue und kehrt zum Prog zurück, SendMessage wartet, bis die Nachricht abgearbeitet wurde.

MyRealName
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:14 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