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 VCL-Bug? Buttons auf TActionToolBar bleiben blau hinterlegt (https://www.delphipraxis.net/33940-vcl-bug-buttons-auf-tactiontoolbar-bleiben-blau-hinterlegt.html)

minimops 15. Nov 2004 10:19


VCL-Bug? Buttons auf TActionToolBar bleiben blau hinterlegt
 
Hallo ,

habe ein Problem mit Buttons (TActionClientItems) auf einer TActionToolBar. (D7 Prof.)

Mein Programm rendert einen Bericht, dauert ca. 5 Sekunden. Solange ist ein kleines Progressfensterchen mit ProgressBar sichtbar. Ich benutze keinen Thread, in den Iterationen der Generierung wird Application.ProcessMessages aufgerufen.

Wenn man während der Generierung mit der Maus über die Symbolleiste fährt (ohne klick), werde die Buttons blau hinterlegt. (Was ja auch normal ist). Leider bleiben die Buttons dann Blau hinterlegt, bis man nach Generierung wieder mit der Maus rüberfährt.

Ich habe einfach keine Idee, wie man das beheben kann. Kann mir da jemand helfen?

Danke Axel

minimops 15. Nov 2004 16:21

Re: Buttons auf TActionToolBar bleiben "aktiv"
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe ein kleines Beispielprogramm erstellt.

Button "test" drücken, 2. Form geht auf. Beim "rüberfahren" über die Symbolleiste mit der Maus bleiben die Menu-Buttons blau hinterlegt...

Hat jemand eine Idee?

shmia 15. Nov 2004 16:44

Re: VCL-Bug? Buttons auf TActionToolBar bleiben blau hinterl
 
Ich kann dein Problem nicht nachvollziehen, da ich D5 verwende.
Aber du solltest alle Actions disablen, solange du länger dauernde Aktionen mit Application.ProccessMessages unterbrichst.
Ansonsten könnte eine 2. Action gestartet werden.
Allgemein:
Delphi-Quellcode:
procedure TForm1.Action1OnExecute(Sender:TObject);

   procedure EnableActions(v:Boolean);
   begin
     Action1.Enabled := v;
     Action2.Enabled := v;
    // usw
    // Hier sollte man sich etwas schlaueres einfallen lassen
   end;
begin
   // alle Actions abschalten
   EnableActions(False);
   try
      MachWasZeitKostet;
   finally
      // alle Actions abschalten
      EnableActions(True);
   end;
end;


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