Fortschritt anzeigen während langdauender Funktion?
-
Aber was ist, wenn ich während meiner Funktion den Fortschritt anzeigen möchte?
Meine Funktion dauert ca. 20 Sekunden.
Meine Funktion ist ungefähr so aufgebaut:
qry_gruppen->Open() ; qry_gruppen->First() ; while (!qry_gruppen->Eof) { Label2->Caption = qry_gruppen->FieldByName("gr_name")->AsAnsiString ; // viel Code der lange dauert :P //... qry_gruppen->Next() ; } qry_gruppen->Close() ;Aber im Label passiert nichts, bis die Funktion zu Ende gelaufen ist

Auf ein
ShowMessage(qry_gruppen->FieldByName("gr_name")->AsString) ;hingegen reagiert er!
Was muss ich machen, dass er das Label->Caption auch anzeigt? Später soll hier eine ProgressBar hin.
-
nach:
qry_gruppen->Next() ;ein:
Application->ProcessMessages();grüssle

-
Hallo
Besser als ProcessMessages ist es aber, die Berechnung in einen extra Thread auszulagern und den Fortschritt synchroniziert an den GUI-Thread zu übergeben.
bis bald
akari