Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [Bug?] Delphi ist zu langsam? (https://www.delphipraxis.net/124225-%5Bbug-%5D-delphi-ist-zu-langsam.html)

The Riddler 17. Nov 2008 09:37


[Bug?] Delphi ist zu langsam?
 
Klitzekleines Problem mit Turbo Delphi.

Ich habe eine ziemlich lange Funktion, die ziemlich lange etwas macht. Damit der User brav wartet und in der Zwischenzeit nichts anderes macht, wollte ich ein Label welches ausgibt sobald der Vorgang in Gang gesetzt wird. So sieht der Kopf meiner Funktion aus:

Delphi-Quellcode:
begin
   Label14.Caption := 'Status: Working, please wait!';
   Label14.Font.Color := clRed;
if IsAppRunning('xxxx.exe') = true then
 begin
  //viel zu tun hier
 end;
Nur leider, macht Delphi das Label nicht rot und ändert die Caption. Ich war schon am verzweifeln, bis ich ein
Delphi-Quellcode:
Application.ProcessMessages;
hinter das Setzen der Label-Farbe gesetzt habe. Nun geht es, ich frage mich trotzdem wieso ich das so machen muss.

Was genau macht Application.ProcessMessages denn, nicht das das noch Einfluss auf die restliche Funktion hat. :?

Thx

Sherlock 17. Nov 2008 09:47

Re: [Bug?] Delphi ist zu langsam?
 
Das ist kein Bug, das ist halt so.
Das ändern der Caption und der Farbe findet schon statt, nur hat Deine Anwendung durch die Ausführung der langen Funktion nicht mehr Gelegenheit, das neu zu zeichnen. Durch Application.ProcessMessages verschaffst Du -bildlich gesprochen- der Anwendung halt etwas Luft, um neu zu zeichnen.

Sherlock

mkinzler 17. Nov 2008 09:52

Re: [Bug?] Delphi ist zu langsam?
 
Es gibt Rechenzeit ab.

The Riddler 17. Nov 2008 09:55

Re: [Bug?] Delphi ist zu langsam?
 
k thx

Bernhard Geyer 17. Nov 2008 09:55

Re: [Bug?] Delphi ist zu langsam?
 
Zitat:

Zitat von The Riddler
Was genau macht Application.ProcessMessages denn, nicht das das noch Einfluss auf die restliche Funktion hat. :?

Du mußt nur verhindern das der user z.B. nochmal den Startknoten für deine Berechnung startet.

divBy0 17. Nov 2008 09:57

Re: [Bug?] Delphi ist zu langsam?
 
Vielleicht solltest du die Funktion in einen Thread auslagern.

The Riddler 17. Nov 2008 09:58

Re: [Bug?] Delphi ist zu langsam?
 
Naja, der Durchlauf der Funktion dauert atm um die 40 Sekunden (dank schlechter Programmierkunst :mrgreen: ), was aber daran liegt das viele Dateien bearbeitet und ersetzt werden. Bringt das etwas sowas in nen Thread auszulagern?

mkinzler 17. Nov 2008 10:00

Re: [Bug?] Delphi ist zu langsam?
 
Man könnte dann im restlichen Programm weiterarbeiten

The Riddler 17. Nov 2008 10:00

Re: [Bug?] Delphi ist zu langsam?
 
Achso, dass muss ja dann nicht sein, die Funktion ist die eigentlich einzige Aktion die man machen kann. ;)

Sir Rufo 17. Nov 2008 10:03

Re: [Bug?] Delphi ist zu langsam?
 
Jepp ein Thread ist genau das Richtige dafür.

Sollte es möglich sein, dass die lange Berechnung mehrere Schritte durchführt, kann man dem Benutzer sogar mitteilen, wo die Berechnung gerade ist (manchmal kann man sogar sagen, wieviel Prozent schon abgearbeitet sind, vielleicht sogar wie lange es wohl noch dauert).

Für die Kurzweil des Benutzers kann man dann im Vordergrund ein lustiges Video oder auch die Fische von den Desktop-Widgets anzeigen lassen :mrgreen:

Deine User/Kunden werden dankbar sein ...

cu

Oliver


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 Uhr.
Seite 1 von 4  1 23     Letzte »    

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