Hi Leute,
ich habe ein Formular, dass ich zur Laufzeit ggf. mehrfach für Datenerfassung nutzen will (Also soll sich diese Fenster mehrfach öffnen können).
Diese Formular wird in der
IDE fertig gestaltet, aber nicht automatisch erzeugt.
Mein Problem ist, dass es immer nur kurz aufblitzt, dann aber sofort verschwindet. Bei beenden der Application kommt es dann zu einer Zugriffsverletzung, da das Formular wohl nicht mehr da ist.
Das Erzeugen findet in dem Event IdTCPServer1Execute statt. Hier mal der Code:
Delphi-Quellcode:
procedure Tfrm_mainCL.IdTCPServer1Execute(AContext: TIdContext);
var
DataStream, FileStream : TStream;
Testfrm: Tfrm_TestCL;
begin
tempfile:=GetTempDir+FormatDateTime('yyyymmddhhnnsszzz', Now)+'.dat';
DataStream := TMemoryStream.Create;
FileStream := TFileStream.Create(tempfile, fmCreate);
try
AContext.Connection.Socket.ReadStream(DataStream, -1, true);
//ShowMessage(Format('Es wurden %d Byte empfangen', [DataStream.Size]));
DataStream.Position := 0;
FileStream.CopyFrom(DataStream, DataStream.Size);
FileStream.Free;
DataStream.Free;
Testfrm:=Tfrm_TestCL.Create(Application);
Testfrm.edt_Name.Text:='';
Testfrm.edt_AZ.Text:='';
Testfrm.chk_returnWithDocument.Checked:=Settings.ReturnWithDocument;
Testfrm.Show;
// with Tfrm_TestCL.Create(Application) do //So habe ich es auch versucht, gleicher Fehler
// begin
// edt_Name.Text:='';
// edt_AZ.Text:='';
// chk_returnWithDocument.Checked:=Settings.ReturnWithDocument;
// Show;
// end;
except
FileStream.Free;
DataStream.Free;
end;
end;
Im TestCL-Formular wird es dann über Action:=caFree freigegeben. So ist zumindest der Plan.
Hat einer einen Tipp, was ich hier falsch mache?
Gruß Hobbycoder