Delphi-PRAXiS
Seite 3 von 4     123 4      

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 FormShow mit CoolTrayIcon dauert zu lange (https://www.delphipraxis.net/145484-formshow-mit-cooltrayicon-dauert-zu-lange.html)

AlexII 2. Jan 2010 23:18

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Soll ich also in jedem FORMULAR die .ini auslesen? :gruebel:

Jens Hartmann 3. Jan 2010 00:01

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Wäre z.B. eine Möglichkeit. Eine andere Möglichkeit hat mir Luckie hier gezeigt...

Werte in einer anderen Form verwenden


Außerdem, könntest Du folgendes ändern...

Delphi-Quellcode:
Form5.CheckBox2.Checked := Ini.ReadBool('Default', 'Traybarwhenmin', False);

...

if Form5.CheckBox2.Checked=True then
begin
CoolTrayIcon1.Enabled:=True;
CoolTrayIcon1.MinimizeToTray:=True;
end;
Vieleicht eher so..
Delphi-Quellcode:
var
  SetCoolTrayIcon : Boolean
begin
...
  SetCoolTrayIcon := Ini.ReadBool('Default', 'Traybarwhenmin', False);
...
  CoolTrayIcon1.Enabled := SetCoolTrayIcon = 1;
  CoolTrayIcon1.MinimizeToTray := SetCoolTrayIcon = 1;
Erstens wird dein Code Übersichtlicher und erfüllt aufjedenfall den Zweck.

Gruß Jens

AlexII 3. Jan 2010 10:23

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Jah.. und was ich schöner und vor allem schneller? Also mir geht es um die Geschwindigkeit! :?

Jens Hartmann 3. Jan 2010 11:15

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Hallo Alex,

Delphi-Quellcode:
Delphi-Quellcode: markieren
var
  SetCoolTrayIcon : Boolean
begin
...
  SetCoolTrayIcon := Ini.ReadBool('Default', 'Traybarwhenmin', False);
...
  CoolTrayIcon1.Enabled := SetCoolTrayIcon = 1;
  CoolTrayIcon1.MinimizeToTray := SetCoolTrayIcon = 1;
mach es so, und schau Dir das mit den Probertys mal genauer an. Die kannst Du für die Übergabe in eine andere Form verwenden.

Gruß Jens

AlexII 3. Jan 2010 12:48

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Ich bekomme hier folgende Fehlermeldung, obwohl ich alles richtig nachgemacht habe:

Delphi-Quellcode:
  CoolTrayIcon1.Enabled := SetCoolTrayIcon = 1;
  CoolTrayIcon1.MinimizeToTray := SetCoolTrayIcon = 1;
Zitat:

[Fehler] Unit1.pas(517): Inkompatible Typen

Matze 3. Jan 2010 12:54

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Zitat von AlexII
Ich bekomme hier folgende Fehlermeldung, obwohl ich alles richtig nachgemacht habe

Kleiner Widerspruch, oder? ;)

Wenn "SetCoolTrayIcon" ein Boolean ist, dann vergleiche nicht auf 1. Der Vergleich ist imho komplett überflüssig, da "SetCoolTrayIcon" bereits ein Boolean ist.

Edit: Also so:

Delphi-Quellcode:
CoolTrayIcon1.Enabled := SetCoolTrayIcon;
CoolTrayIcon1.MinimizeToTray := SetCoolTrayIcon;
Grüße, Matze

AlexII 3. Jan 2010 13:24

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Danke :)

Hab jetzt alles nach OnCreate verlagert, aber das Programm funktioniert genau so wie vorher, also nach dem Maximieren kann man mit dem Programm 5 Sekunden lang nichts machen. Also das öffnet sich schnell, aber da lässt sich nix anklicken, keine Reaktion :( Erst nach diesen 5 Sek. läuft alles, was kann denn das sein? :(

Matze 3. Jan 2010 13:27

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Hast du noch irgendwelche Dinge im OnShow oder evtl. OnActivate stehen?

Oder kann es sein, dass deine Oberfläche mit hunderten Komponenten überladen ist? Das könnte ein Anzeigen auch verlangsamen.

AlexII 3. Jan 2010 13:32

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Ja da steht noch was, aber ganz wenig, 2 oder 3 Zeilen ...

Ich habe 6 Timer, 2 PopupMenu, OpenDialog, SaveDialog, ApplicationEvent, CoolTrayIcon, AutoUpgrader und XPManifest. :gruebel:
Das ist doch nicht viel, oder?

Matze 3. Jan 2010 13:35

Re: FormShow mit CoolTrayIcon dauert zu lange
 
Zitat:

Zitat von AlexII
Ja da steht noch was, aber ganz wenig, 2 oder 3 Zeilen ...

Da reicht schon eine Zeile, um den Start zu verzögern:

Delphi-Quellcode:
for i := 1  to 10000000 do Application.ProcessMessages;
Das kommt immer darauf an, was deine Komponenten machen. Aktive Timer führen ständig Operationen aus. Sind diese Rechenintensiv, dann kann das ein schnelles Anzeigen verhindern. Um nur ein Beispiel zu nennen.

"ApplicationEvents" stellt dir Ereignisse wie OnRestore zur Verfügung. Wenn da etwas steht, kann auch das die Verzögerung verursachen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz