Пожалуйста, создайте новое приложение FMX, добавьте кнопку и памятку, чтобы запустить этот пример.У меня есть этот код:
procedure TForm1.Button1Click(Sender: TObject);
begin
TTask.Run(procedure
var
client: TIdHTTP;
result: string;
begin
client := TIdHTTP.Create(nil);
try
try
client.ReadTimeout := 4000;
client.ConnectTimeout := 4000;
result := client.Get('a valid url here just as test');
TThread.Synchronize(nil, procedure
begin
Memo1.Lines.Add(result);
end);
except
on E: Exception do
begin
TThread.Synchronize(nil, procedure
begin
Memo1.Lines.Add(E.Message);
end);
end
end;
finally
client.Free;
end;
end);
end;
Он работает, как я ожидаю, но проблема в IDE.Если я поместлю курсор где-нибудь в теле анонимной функции, я получу закрытие оператора finally автоматически.
Как я могу это исправить?
Сначала я здесь
Затем я нажимаю Enter и у меня есть это!
Если вы поместите курсор в начало, а не в конец строки, вы можете добавить новые пробелы без завершения.Как решить эту проблему?Ну, я обнаружил, что проблема возникает, потому что есть этот код:
TThread.Synchronize(nil, procedure
begin
Memo1.Lines.Add(result);
end);
Если вы удалите этот код, проблема больше не будет возникать.Это ошибка в IDE?