Program hænger (del2)
Dette er en forsættelse på http://www.eksperten.dk/spm/634506, hvor jeg fik masser af hjælp til at finde mit problem.Nu er problemet bare at jeg ikke selv kan løse det.
Mit problem er, som jeg har forstået det, at jeg afvikler GUI-relateret kode i min ServerExecute-procedure.
Min kildekode ser således ud:
----
procedure TForm1.TCPServerExecute(AContext: TIdContext);
var
Command: string;
Command2: string;
Index: Integer;
begin
Command:=Acontext.Connection.IOHandler.ReadLn;
Command2:=Acontext.Connection.IOHandler.ReadLn;
// Load Profile
if (Command='LP') then
begin
Index:=LogListBox.Items.IndexOf(AContext.Connection.Socket.Binding.PeerIP);
If (Index>=0) then
begin
if (StrToInt(Command2)>=0) then
begin
LoadComboBox.ItemIndex:=StrToInt(Command2);
Acontext.Connection.IOHandler.WriteLn('2');
LoadButton.Click;
end;
if (StrToInt(Command2)<0) then
begin
Acontext.Connection.IOHandler.WriteLn('1');
end;
end;
If (Index<0) then
begin
Acontext.Connection.IOHandler.WriteLn('0');
end;
end;
end;
----
Det går galt når jeg afvikler den "LoadButton.Click".
Eksemplet jeg har fået foræret ser således ud:
----
constructor TMySync.Create(AThread: TIdPeerThread);
begin
Inherited;
Txt := AThread.Connection.ReadLn;
end;
procedure TMySync.DoSynchronize;
begin
// Her kan du gøre hvad som helst GUI relateret...
Form1.ListBox1.Items.Add(Txt);
end;
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
begin
with TMySync.Create(AThread) do
DoSynchronize;
end;
----
Men hvordan fletter jeg lige min egne kode ind i det?
