Sorry for my bad English…
Using Delphi 7 I want to create a dialog window to show that something is happening in my application when i have to run slow processes.
My idea was to do something that i can use like:
with TMyDialog.Create do
begin
//call the time consuming method here
Free;
end;
When i create the dialog, a window with an animation or something will show and will disappear after the time consuming method ends (on the free method) – it would be nice if I could manually update the progress from that dialog, in cases when the process give me such information:
with TMyDialog.Create do
begin
while time_consuming_method do
begin
UpdateStatusOnMyDyalog();
end;
Free;
end;
but normally it would only be a animation to show that something is happening.
Has someone did something like that, knows a component or have any suggestions on whats the best way to do it in the most clean and simple way?
The bad but easy way to do this is to call
Application.ProcessMessagesorUpdateWindow(Handle)(to update the form) and increment a progressbar during yourtime_consuming_method. A slightly better method would be to wrap yourtime_consuming_methodup into a class with an OnProgress event. Finally as other people have suggested you could use a separate thread for yourtime_consuming_method– which is the most powerful technique, but has the worst learning curve.