Updates der Form funktionieren nicht

Updates der Form funktionieren nicht

Beitragvon Edwa » 10. Apr 2013, 22:10 Updates der Form funktionieren nicht

Ich schreibe unter anderem an ein paar Projekten, in denen große Mengen Daten eingelesen und analysiert werden (ein Durchlauf kann 10 Minuten dauern).
In Delphi habe ich immer textfelder mit dem Status gefüllt und ab und an "refresht" um den Nutzer anzuzeigen, dass noch was passiert.
Ähnliches habe ich für Graphen gemacht, in denen ich Zwischenergebnisse geplottet habe. (z.B. image1.refresh)
Wenn ich mit solchen Befehlen unter OS-X compiliere passiert gar nix.
Dasselbe Projekt under W7 kompiliert macht das was ich will. :evil:

Was läuft hier falsch?

Ede
Edwa
 
Beiträge: 3
Registriert: 3. Apr 2013, 10:14

Beitragvon Socke » 10. Apr 2013, 22:42 Re: Updates der Form funktionieren nicht

Edwa hat geschrieben:ein Durchlauf kann 10 Minuten dauern

Nur?! Nach meiner Erfahrung können das keine großen Datenmenge oder keine komplexen Analysen sein :D

Edwa hat geschrieben:Wenn ich mit solchen Befehlen unter OS-X compiliere passiert gar nix.
Dasselbe Projekt under W7 kompiliert macht das was ich will. :evil:

Versuch mal Application.ProcessMessages; nach dem Refresh aufzurufen. Wenn das keine Abhilfe schafft, könnte das ein Bug sein, den du gerne im Bugtracker eintragen darfst (dann wäre ein Minimalbeispiel hilfreich). Andernfalls sollten Threads die Problemstellung beseitigen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Socke
Lazarusforum e. V.
 
Beiträge: 2661
Registriert: 22. Jul 2008, 18:27
Wohnort: Köln
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE | 
CPU-Target: 32bit x86 armhf
Nach oben

Beitragvon jwdietrich » 18. Mai 2013, 20:28 Re: Updates der Form funktionieren nicht

Ich würde dringend empfehlen, eine derart komplexe Berechnung mit MultiThreading zu realisieren, d. h. die Rechnung läuft in einem Thread, die Benutzeroberfläche in einem anderen. Dann bleibt das Programm während des Laufs benutzbar und die Berechnung kann auf Wunsch auch angehalten oder abgebrochen werden.
jwdietrich
 
Beiträge: 137
Registriert: 20. Okt 2008, 19:50
Wohnort: Hattingen, NRW
OS, Lazarus, FPC: Mac OS X 10.4-10.14, Windows 2000-8, SUSE, Ubuntu, Raspbian (L 2.0.6, FPC 3.0.4) | 
CPU-Target: PowerPC, Intel, ARM
Nach oben

Beitragvon Christian » 19. Mai 2013, 09:13 Re: Updates der Form funktionieren nicht

Eigentlich könnt ich ja helfen, aber der smiley nervt mich :)
1. Das Problem liegt bei dir.
2. Bleib doch bei Delphi
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/
Christian
Lazarusforum e. V.
 
Beiträge: 6092
Registriert: 21. Sep 2006, 06:51
Wohnort: Dessau
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z) | 
CPU-Target: AVR,ARM,x86(-64)
Nach oben

Beitragvon gocher » 19. Mai 2013, 10:55 Re: Updates der Form funktionieren nicht

Für solche Fälle nutze ich:
Code: Alles auswählen
 
    Statusbar: TPanel;
    edtStatusBar: TEdit;
    ProgressBar: TProgressBar;
...
        ProgressBar.Position := 0;
        ProgressBar.Max := iMax;
...Loop...
        ProgressBar.Position := iAct;
        edtStatusBar.Text := info;
        edtStatusBar.Repaint;
        Application.ProcessMessages;
...Loop End...


und das natürlich am besten in einem Thread!

ODER

Ich nutze eine Konsolen-Anwendung oder Daemon im Hintergrund für mich erscheint es nicht sinnvoll eine Auswertung (z.B. was bei mir häufig vorkommt Logfile-Auswertung) in einer GUI-Anwendung auszuführen! Eine GUI-Anwendung verbraucht viel zu viel Zeit fürs Repaint etc., mit Write(Ln) gebe ich dann zwischendurch an was im Augenblick passiert, ob auf Konsole oder in eine Logging Datei!

:shock: Ach so ja, ich stelle seit ca. 2 Jahren so langsam all meine Projekte auf Free Pascal / Lazarus um, lediglich das erzeugen von Active-X Objekten passiert noch unter Delphi (hoffentlich das auch nicht mehr lange) und Aktualisierung uralter Software wo eine Portierung hoffentlich keinen Sinn mehr macht, also der Schritt nach Delphi wäre für mich ein Schritt zurück, besonders unter dem Gesichtspunkt der Flexibilität!
MfG Gocher
akt. Projekt: Webserver mit integrierten CMS in Free Pascal - www.gocher.me
gocher
 
Beiträge: 296
Registriert: 23. Nov 2010, 23:41
Wohnort: Geldern
OS, Lazarus, FPC: Ubuntu/Win, Lazarus trunk, FPC trunk | 
CPU-Target: 32Bit/64Bit
Nach oben

• Themenende •

Zurück zu MacOS



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried