Registriert seit: 15. Jul 2006
Ort: Rostock
37 Beiträge
Delphi 2006 Professional
|
Re: Thread anhalten
6. Aug 2006, 10:04
Ok, also der Fehler tritt auf, wenn ich das Fenster mit ShowModal; aufrufe.
Delphi-Quellcode:
procedure TnewUpload.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Thread2.Resume;
end;
procedure TnewUpload.FormShow(Sender: TObject);
begin
Thread2.Suspend;
end;
procedure TnewUpload.SaveUpload;
begin
if eServer.Text = '' then
MessageBox(0,'Bitte geben Sie einen Server ein!','Server eingeben',MB_OK + MB_ICONSTOP)
else if ePort.Text = '' then
MessageBox(0,'Bitte geben Sie einen Port ein!','Port eingeben',MB_OK + MB_ICONSTOP)
else if eUser.Text = '' then
MessageBox(0,'Bitte geben Sie einen Benutzernamen ein!','Benutzername eingeben',MB_OK + MB_ICONSTOP)
else if ePassword.Text = '' then
MessageBox(0,'Bitte geben Sie ein Passwort ein!','Passwort eingeben',MB_OK + MB_ICONSTOP)
else if eQPath.Text = '' then
MessageBox(0,'Bitte geben Sie einen Quellpfad ein!','Quellpfad eingeben',MB_OK + MB_ICONSTOP)
else if eSPath.Text = '' then
MessageBox(0,'Bitte geben Sie einen Serverpfad ein!','Serverpfad eingeben',MB_OK + MB_ICONSTOP)
else if eIntervall.Text = '' then
MessageBox(0,'Bitte geben Sie ein Intervall ein!','Intervall eingeben',MB_OK + MB_ICONSTOP)
else if eIntervall.Text < '60' then
MessageBox(0,'Das Intervall muss mindestens 60 Sekunden betragen!','Intervall zu klein',MB_OK + MB_ICONSTOP)
else
begin
MainForm.ABSDatabase1.Connected := true;
MainForm.UploadTable.Active := true;
with MainForm.UploadTable do
begin
Insert;
FieldByName('sServer').AsString := eServer.Text;
FieldByName('iPort').AsString := ePort.Text;
FieldByName('sUser').AsString := eUser.Text;
FieldByName('sPassword').AsString := ePassword.Text;
FieldByName('sQPath').AsString := eQPath.Text;
FieldByName('sSPath').AsString := eSPath.Text;
FieldByName('iIntervall').AsString := eIntervall.Text;
FieldByName('lAuto').AsVariant := cbAuto.Checked;
Post;
end;
ClearForm;
MainForm.UpdateUploads;
MainForm.UploadTable.Active := false;
MainForm.ABSDatabase1.Connected := false;
Close;
end;
end;
procedure TnewUpload.bSaveClick(Sender: TObject);
begin
SaveUpload;
end;
Dort rufe ich ja dann
Delphi-Quellcode:
procedure TnewUpload.FormShow(Sender: TObject);
begin
Thread2.Suspend;
end;
auf und dort bekomme ich die Zugriffsverletzung.
Wenn ich
Thread2.Suspend;
über einen Button im MainForm aufrufe, dann bekomme ich keinen Fehler.
MfG
|
|
Zitat
|