Ausführung einer Schleife abbrechen



  • Hallo zusammen,

    hab gerade ein kleines Projekt fertig gestellt und musste leider feststellen daß mir da eine Sache nicht gefällt. 😃

    Ist-Zustand:

    Ich habe ein Programm geschrieben, dass eine Katalog-Datei zeilenweise ausliesst, diese Zeilen in ein SQL-Statement formatiert und in einer Datenbank speichert.
    Die Datei hat rund 2,5 Millionen Zeilen.

    Der Auslese- und Übertragungsvorgang wird mit einem 'Start-Button' gestartet.

    Während mein Programm rödelt, kann ich es aber nicht anhalten und das Fenster kann weder vergrössert noch verschoben werden.

    Ist zwar nur ein Schönheitsfehler und für dieses Projekt nicht relevant, ich würde aber trotzdem gerne wissen wie ich das hinbekommen könnte, daß man das Fenster wieder verschieben kann.

    Vielen Dank im Voraus.

    Arno



  • Die Schleife unterbricht die Nachrichtenbehandlung des Programms. Innerhalb der Schleife Application::ProcessMessages() aufrufen, damit der Messagequeue verarbeitet werden.



  • Aha, vielen Dank.
    Ist ja eigentlich ganz einfach.
    Wird mein Programm dadurch viel langsamer?

    Gruß Arno



  • Hallo

    Ein wenig ja, aber das sollte eigentlich kaum merkbar sein.
    Richtig solide ist natürlich eine Auslagerung der Arbeitsroutine in einen TThread.

    bis bald
    akari



  • TThread ist bis jetzt noch Neuland für mich, werd mich aber einlesen.

    Danke schön.

    Gruß´Arno


Anmelden zum Antworten