Всем привет!
Есть приложение Клиент-Сервер. Задача формировать отчеты на стороне клиента и далее отправка этого файла на сервер.
Я отправляю клиенту определенное сообщение, клиент принимает и отправляет сформированный отчет.
Код:
procedure TForm1.M1Click(Sender: TObject);
var
MSG: string;
SelectedItem, i: integer;
begin
SelectedItem := StrToInt(ListView1.Items[ListView1.ItemIndex].SubItems[1]);
if Form4.ShowModal = mrOK then
begin
MSG:= Form4.Edit1.Text;
MSG:= StringReplace(MSG, '.', ' ', [rfReplaceAll, rfIgnoreCase]);
for i := 0 to ServerSocket1.Socket.ActiveConnections - 1 do
begin
if ServerSocket1.Socket.Connections[i].Handle = SelectedItem then
begin
ServerSocket1.Socket.Connections[i].SendText('#report#=' + MSG);
Break;
end;
end;
end;
end;
По одиночке - все работает. Не могу придумать, что делать в случае если надо отправить эту команду для всех по очереди, при этом ждать пока скачается предыдущий файл...
как пример... но это не работает так как нужно..
Код:
procedure FileReceiveThread.Execute;
var
MSG: string;
i: integer;
Count: integer;
begin
if Form4.ShowModal = mrOK then
begin
MSG:= Form4.Edit1.Text;
MSG:= StringReplace(MSG, '.', ' ', [rfReplaceAll, rfIgnoreCase]);
Count:= Form1.ServerSocket1.Socket.ActiveConnections;
for i := 0 to Count do
begin
if Form1.Gauge1.Progress = 0 then
begin
Form1.ServerSocket1.Socket.Connections[i].SendText('#report#=' + MSG);
end else
begin
Sleep(5000);
end;
end;
end;
end;
буду благодарен за помощь и идеи
