Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Botschaft Application Exit (https://www.delphipraxis.net/121940-botschaft-application-exit.html)

stahli 7. Okt 2008 10:36


Botschaft Application Exit
 
Hallo alle,

welche Botschaft erhält meine Application, wenn eine andere aktiviert wird?

Hintergrund:
Stark verschachtelte AlphaControls werden nicht immer zuverlässig aufgefrischt, so dass die Darstellung auf dem Bildschirm manchmal nicht ganz i.O. ist.
Dies wird u.a. immer dann korrigiert, wenn eine andere Anwendung aktiviert wird.

Nun möchte ich versuchsweise die entsprechende Botschaft an meine Anwendung/Formular senden und so evtl. ein Neuzeichnen veranlassen. (Ein Invalidate aller Komponenten ist nicht ausreichend.)


Danke
Stahli

DeddyH 7. Okt 2008 10:40

Re: Botschaft Application Exit
 
Ich würde mal bei WM_ACTIVATEAPP ansetzen.

stahli 8. Okt 2008 08:54

Re: Botschaft Application Exit
 
Danke, hat aber leider nichts gebracht.
Ich werde mal das AC-Team anfragen...

Stahli

Luckie 8. Okt 2008 09:00

Re: Botschaft Application Exit
 
Zitat:

Zitat von stahli
welche Botschaft erhält meine Application, wenn eine andere aktiviert wird?

Du meinst, wenn dein Fenster den Focus verliert?

Zitat:

Zitat von stahli
Danke, hat aber leider nichts gebracht.
Ich werde mal das AC-Team anfragen...

Was heißt, "hat nichts gebracht"? Wie sieht denn dein Code aus? Du musst den wParam der Nachricht auswerten. Siehe dazu MSDN-Library durchsuchenWM_ACTIVATEAPP:
Zitat:

The WM_ACTIVATEAPP message is sent when a window belonging to a different application than the active window is about to be activated. The message is sent to the application whose window is being activated and to the application whose window is being deactivated.
[..]
wParam
Specifies whether the window is being activated or deactivated. This parameter is TRUE if the window is being activated; it is FALSE if the window is being deactivated.
Und wer ist das AC-Team?

DeddyH 8. Okt 2008 10:39

Re: Botschaft Application Exit
 
AC = Alpha Controls (Skinning-Komponenten)

stahli 8. Okt 2008 11:15

Re: Botschaft Application Exit
 
Zitat:

Du meinst, wenn dein Fenster den Focus verliert?
ja

Zitat:

Wie sieht denn dein Code aus?
DummyForm.Perform(WM_ACTIVATEAPP, 0, 0);
Ich wollte einfach so tun, als würde ein anderes Formular aktiviert werden - in der Hoffnung, dass die AlphaControls sich dann entsprechend neu zeichnen.
Das funktionierte jedoch so nicht (keine sichtbare Reaktion).

Zitat:

Und wer ist das AC-Team?
Wie DeddyH schon richtig sagte...

Luckie 8. Okt 2008 11:18

Re: Botschaft Application Exit
 
Zitat:

Zitat von stahli
Delphi-Quellcode:
DummyForm.Perform(WM_ACTIVATEAPP, 0, 0);
Ich wollte einfach so tun, als würde ein anderes Formular aktiviert werden - in der Hoffnung, dass die AlphaControls sich dann entsprechend neu zeichnen.
Das funktionierte jedoch so nicht (keine sichtbare Reaktion).

Also mit der Api Fubnktion MSDN-Library durchsuchenInvalidateRect sooltest du dein Fenster zum Neuzeichnen zwingen können. Ob das aber aiuch einen Einfluss auf die Skinning Komponente hat, kann ich nicht sagen.

Zitat:

Zitat:

Und wer ist das AC-Team?
Wie DeddyH schon richtig sagte...
Das ist in diesem Fall wohl der richtige Ansprechpartner.

stahli 8. Okt 2008 18:11

Re: Botschaft Application Exit
 
Ich konnte es jetzt so lösen:

Delphi-Quellcode:
procedure TTimerDummy.TimerNow(Sender: TObject);
const
  FLAGS = RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_UPDATENOW or RDW_ALLCHILDREN;
begin
  RedrawWindow(DummyForm.Handle, nil, 0, FLAGS);
  TimerDummy.Enabled := False;
end;
So kann ich mit einer kleinen Verzögerung bei Bedarf ein Neuzeichnen veranlassen.
Das funktioniert erst mal sehr gut. Mal sehen, ob sich mit der Zeit noch andere Probleme bemerkbar machen...

Danke
Stahli


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 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