AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Während Prozedur noch läuft, Daten eintragen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Während Prozedur noch läuft, Daten eintragen lassen

Ein Thema von michael.funcke · begonnen am 15. Dez 2011 · letzter Beitrag vom 15. Dez 2011
Antwort Antwort
michael.funcke

Registriert seit: 22. Apr 2011
9 Beiträge
 
Delphi 2010 Architect
 
#1

Während Prozedur noch läuft, Daten eintragen lassen

  Alt 15. Dez 2011, 17:37
Hallo,

mein Programm durchläuft einen großen Loop immer und immer wieder. Darin schreibt er öfters neue Daten in die .Text-Eigenschaft von TEdit-Feldern.

Wenn ich das Programm jetzt kompiliere und den Loop durch einen Button-Click starte, bleibt der Button eingedrückt (was ja heißt, dass er die Prozedur noch ausführt, oder?) und die Anfangswerte für .Text der Editfelder bleiben stehen, obwohl er sie eigentlich die ganze Zeit ändert.

Kann es sein, dass das daran liegt, dass die Prozedur noch nicht zuende gelaufen ist und er die UI erst auf die endgültigen Werte "updated", wenn die Prozedur komplett durchgelaufen ist?
Wie kann ich es hinkriegen, dass er mir jedes Mal, wenn er den Text ändert, dies auch sofort auf der UI sichtbar macht?

Danke, ihr schlauen Delphi-Cracks da draußen!!

Liebe Grüße

Micha
  Mit Zitat antworten Zitat
Klaus01
Online

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Während Prozedur noch läuft, Daten eintragen lassen

  Alt 15. Dez 2011, 17:41
Hallo,

Du könntest in der Schleife alle 100 Durchgänge ein
application.processMessages einbauen.

Oder alles auf Threads umstellen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
michael.funcke

Registriert seit: 22. Apr 2011
9 Beiträge
 
Delphi 2010 Architect
 
#3

AW: Während Prozedur noch läuft, Daten eintragen lassen

  Alt 15. Dez 2011, 17:48
TOP!!!

application.processMessages funktioniert einwandfrei! Dankeschön!

Frohe Weihnachten dir!
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Während Prozedur noch läuft, Daten eintragen lassen

  Alt 15. Dez 2011, 17:52
Bedenke das durch Application.Processmessages nicht nur die Nachrichten für das Zeichnen verarbeitet werden sondern auch ButtonClicks abgearbeitet werden. In deinem Fall kann es also passieren das jemand nochmal auf den Button klickt während der Code im Buttonclick noch ausgeführt wird.
Ebenso kann es sein das jemand das Programm schließen will. Du solltest also sicherstellen das nicht irgendwelche ButtonClicks ausgeführt werden während in dem Buttonclick etwas passiert und du solltest im besten Fall in deiner Schleife im Buttonclick prüfen ob die Anwendung beendet werden soll und entsprechend die Schleife abgebrochen werden soll.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
michael.funcke

Registriert seit: 22. Apr 2011
9 Beiträge
 
Delphi 2010 Architect
 
#5

AW: Während Prozedur noch läuft, Daten eintragen lassen

  Alt 15. Dez 2011, 17:55
Zitat:
Bedenke das durch Application.Processmessages nicht nur die Nachrichten für das Zeichnen verarbeitet werden sondern auch ButtonClicks abgearbeitet werden.
Ist kein Problem! Der Button wird disabled, sobald auf ihn geklickt wird. Aber danke für den Hinweis!
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:26 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