. , ( ) , . . , . , , . , , , , . :
type
TLoadThread = class(TThread)
public
Host: string;
NamePath: string;
Port: Integer;
Config: Boolean;
constructor Create(const aHost, aNamePath: string; aPort: Integer; aConfig: Boolean); reintroduce;
protected
procedure Execute; override;
end;
constructor TLoadThread.Create(const aHost, aNamePath: string; aPort: Integer; aConfig: Boolean);
begin
inherited Create(True);
FreeOnTerminate := True;
Host := aHost;
NamePath := aNamePath;
Port := aPort;
Config := aConfig;
end;
procedure TLoadThread.Execute;
begin
//do processing
Synchronize(
procedure
//update main form
end
);
//do processing
end;
var
Loading: Boolean = False;
zLThread: TLoadThread = nil;
procedure TfrmMain.FormActivate(Sender: TObject);
begin
zLThread := TLoadThread.Create(Host, NamePath, Port, Config);
zLThread.OnTerminate := ThreadTerminated;
zLThread.Start;
Loading := True;
AniIndi.Visible := True;
AniIndi.Enabled := True;
UpdateAll;
end;
procedure TfrmMain.ThreadTerminated(Sender: TObject);
begin
zLThread := nil;
Loading := False;
AniIndi.Enabled := False;
AniIndi.Visible := False;
UpdateAll;
end;