AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[Bug?] Delphi ist zu langsam?

Ein Thema von The Riddler · begonnen am 17. Nov 2008 · letzter Beitrag vom 17. Nov 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
The Riddler
(Gast)

n/a Beiträge
 
#1

[Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 09:37
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 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
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.763 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 09:47
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
Oliver
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 09:52
Es gibt Rechenzeit ab.
Markus Kinzler
  Mit Zitat antworten Zitat
The Riddler
(Gast)

n/a Beiträge
 
#4

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 09:55
k thx
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 09:55
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von divBy0
divBy0

Registriert seit: 4. Mär 2007
Ort: Sponheim
1.021 Beiträge
 
Delphi XE2 Professional
 
#6

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 09:57
Vielleicht solltest du die Funktion in einen Thread auslagern.
Marc
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt, die 10. summt die Melodie von Tetris... | Wenn das die Lösung ist, dann hätte ich gerne mein Problem zurück! | engbarth.es
  Mit Zitat antworten Zitat
The Riddler
(Gast)

n/a Beiträge
 
#7

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 09:58
Naja, der Durchlauf der Funktion dauert atm um die 40 Sekunden (dank schlechter Programmierkunst ), was aber daran liegt das viele Dateien bearbeitet und ersetzt werden. Bringt das etwas sowas in nen Thread auszulagern?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 10:00
Man könnte dann im restlichen Programm weiterarbeiten
Markus Kinzler
  Mit Zitat antworten Zitat
The Riddler
(Gast)

n/a Beiträge
 
#9

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 10:00
Achso, dass muss ja dann nicht sein, die Funktion ist die eigentlich einzige Aktion die man machen kann.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

Re: [Bug?] Delphi ist zu langsam?

  Alt 17. Nov 2008, 10:03
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

Deine User/Kunden werden dankbar sein ...

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 04:24 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