Maximus
-
Постов
84 -
Зарегистрирован
-
Посещение
-
Победитель дней
9
Ответы сообщества
-
Пост Maximus - сообщение в Как подавить экранный курсор crSQLWait ? был отмечен как ответ
На самом деле это поведение можно достаточно просто отключить
var Connect : TFDConnection; Query : TFDQuery; ... Connect.ResourceOptions.SilentMode := true; Query.ResourceOptions.SilentMode := true; ...
-
Пост Maximus - сообщение в Запуск стороннего приложения со своими координатами. был отмечен как ответ
Ну да, конкретно с калькулятором такой финт не прокатит, он явно запоминает свою позицию перед закрытием, а затем при запуске её восстановление происходит уже после применения заданных в CreateProcess параметров позиции. А вообще работает, например, если запустить своё же приложение, разумеется если в нём нет установки координат после запуска.
Можно и MoveWindow или SetWindowPos использовать после запуска, только тогда придётся получить хендл окна.
-
Пост Maximus - сообщение в NetHTTPClient передача файла и OnReceiveData был отмечен как ответ
В общем, я бы исправил так: добавил локальную переменную
Abort: Boolean;
в TWinHTTPClient.DoExecuteRequest, до цикла передачи данных вызвал бы коллбек с объёмом файла, так же как происходит при загрузке файла на ПК - первый коллбек вызывается с нулевым объёмом переданных данных.
LRequest.DoReceiveDataProgress(0, DataLength, 0, Abort);
В цикл добавил бы проверку на прекращение загрузки
while (LRequest.FSourceStream.Position < LRequest.FSourceStream.Size) and (not Abort) do
В конце цикла вызывал бы коллбек с объёмом файла и количеством переданных байт.
Первый параметр коллбека - StatusCode получить на данном этапе скорее всего нельзя, или я не понял как, поэтому передаю ноль.
LRequest.DoReceiveDataProgress(0, DataLength, LRequest.FSourceStream.Position, Abort);
Полный текст исправленной функции.
-
Пост Maximus - сообщение в Открытие файлов перемещением из проводника на форму или один из ее элементов, Windows был отмечен как ответ
Например через компонент TDropTarget.
-
Пост Maximus - сообщение в Аналог свойства ParentWindow был отмечен как ответ
Проблема была решена данным способом.
var FMForm: TFMForm1; FMHWnd: HWND; begin FMForm := TFMForm1.Create(nil); FMForm.Left := 0; FMForm.Top := 0; FMForm.Show; FMHWnd := FmxHandleToHWND(FMForm.Handle); SetWindowLong(FMHWnd, GWL_STYLE, GetWindowLong(FMHwnd, GWL_STYLE) or WS_CHILD); winapi.windows.SetParent(FMHWnd, Handle необходимого окна);