Archi_Ku

Пользователи
  • Публикаций

    6
  • Зарегистрирован

  • Посещение

Информация о Archi_Ku

  • Звание
    Новичок

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  1. Взял кусок кода из стандартного примера. А так вобще верное замечание! Откровенно да, выглядит всё сложно, если не сказать хуже... Буду думать над оптимизацией. (У меня опыта работы с потоками однозначно мало. Плаваю в том что касается передачи в поток, ожидания потока, возврата из потока) Наткнулся на интересную(для меня) реализацию возврата переменной из потока. unit uAwait; interface uses System.Classes ; type TAwaitableProc<T> = reference to function : T; IAwaitable<T> = interface function Value: T; end; TAwaitable<T> = class(TInterfacedObject, IAwaitable<T>) private FThread: TThread; FValue: T; public constructor Create(AwaitableProc: TAwaitableProc<T>); reintroduce; destructor Destroy; override; function Value: T; end; implementation constructor TAwaitable<T>.Create(AwaitableProc: TAwaitableProc<T>); begin inherited Create; FThread := TThread.CreateAnonymousThread( procedure begin FValue := AwaitableProc; end); FThread.FreeOnTerminate := False; FThread.Start; end; destructor TAwaitable<T>.Destroy; begin FThread.Free; inherited; end; function TAwaitable<T>.Value: T; begin FThread.WaitFor; Result := FValue; end; end. и сам вызов procedure TForm1.Button1Click(Sender: TObject); var Wait: TAwaitable<string>; begin Wait := TAwaitable<string>.Create( function : string begin Sleep(2500); Result := 'ewrewefewfrwe'; end ); ShowMessage(Wait.Value); end;
  2. Коллеги, может примером выручите? В разных потоках пытался выполнять запросы, но видимо слабоват я в потоках.
  3. Доброго времени суток коллеги! Прошу подсказать или выручить примером реализации окна "Подождите пожалуйста"/"Please wait". (Желательно стандартными компонентами) Приложение планирую запускать на Android и IOS. В дескопном клиенте делал Show и Hide (для того чтобы отобразить/спрятать окно), а для Android в частности аналогичное реализовать не удается, или может frame или layout использовать необходимо а я через form пытаюсь. Третий день бьюсь над этим вопросом, Господа выручайте. Читал вот эту статью ( http://fire-monkey.ru/topic/83-fgx-индикация-хода-выполнения-длительных-операций-виртуальная-клавиатура-и-actionsheet/ ) Почти всё меня устраивало, только вот достичь желаемого результата не удалось: - поднять окно "Подождите пожалуйста" - выполнить запрос к серверу(получить ответ сервера) - по окончанию открыть другое окно(зависит от результата) - закрыть окно "подождите пожалуйста" Прошу поправить или подсказать как реализовать задуманное?! (если выручите примером буду премного благодарен) ------------------------------------------------------------------------------------------- RAD Studio 10.2.2, Android SDK 24.0, IOS 11.3 PleaseWait.7z