Перейти к содержанию
Fire Monkey от А до Я

Лидеры

  1. Равиль Зарипов (ZuBy)

    Равиль Зарипов (ZuBy)

    Модераторы


    • Баллы

      4

    • Постов

      2 517


  2. Brovin Yaroslav

    Brovin Yaroslav

    Администраторы


    • Баллы

      2

    • Постов

      2 124


  3. krapotkin

    krapotkin

    Пользователи


    • Баллы

      1

    • Постов

      2 187


  4. AndreyS

    AndreyS

    Пользователи


    • Баллы

      1

    • Постов

      48


Популярный контент

Показан контент с высокой репутацией 13.01.2016 во всех областях

  1. родные шрифты на устройстве содержат unicode символы. в том числе и кирилицу. соответственно они отрисуются правильно
    2 балла
  2. Сам отвечу на свой же вопрос: DDOS-атака идентифицируется благодаря Bitmap.LoadFromUrl (uses FMX.Features.Bitmap.Helpers). В процедуре используется связка: инициализация idhttp и закрытие соединения (удаление) idhttp. Множественные сессии и вызывают схожесть с DDOS...
    1 балл
  3. Axbor

    Загрузка файлов из интернета

    void __fastcall TForm1::Button1Click(TObject *Sender) { TThread::Synchronize(TThread::CurrentThread, getFile); } void TForm1::getFile() { TMemoryStream *MS = new TMemoryStream; IdHTTP1->Get("YOUR URL", MS); MS->SaveToFile("*.*"); delete MS; }
    1 балл
  4. ZuBy, а как Ваш код будет на С++ Builder выглядеть? Спасибо. не силен в С++, но думаю также #include <System.Threading.hpp> TTask::Run(_di_TProc(// тут остальной код))); справочка
    1 балл
  5. uses System.Threading; TTask.Run(procedure begin Stream:=TMemoryStream.Create; IdHTTP1.Get('http://devdelphi.ru/files/VK_APImodul.rar',Stream); Stream.SaveToFile('C:\1.rar'); Stream.Free; end);
    1 балл
  6. Добрый вечер, Ну и название пакета чуть выше.
    1 балл
  7. Query.Last; //Переходим к последней записи в выборке X := Query.RecordCount; //Здесь RecordCount уже выдаст правильное количество записей Query.First; // Возвращаемся к первой записи.
    1 балл
  8. Утверждение alexburikov не верно, лично мы на x86 Атомах всё запускаем и всё прекрасно работает (XE8 точно, и , кстати, на Seattle тоже). Для компиляции ничего особенного не нужно, кроме наличия подходящей SDK для той версии Андроид, что установлена на девайсе. А вот для запуска на них нужно лишь отключить в Project - Deployment 3 галки с libnative-activity.so. Это, по сути, лишит возможности отлаживать приложение по брейкпоинтам, но если не отключить их, то приложение либо крашится при старте, либо "Application does not support this device" (Зависит от версии Delphi)
    1 балл
  9. для multi-view это стандартное поведение
    1 балл
  10. Вся отрисовка выполняется в главном потоке приложения. Поэтому, если вы пытаетесь выполнить скачивание файла в основном потоке, то вся отрисовка приостановится до момента окончания вашей операции. Поэтому правило хорошего тона - это вынесение долгих операций (загрузка, ответ авторизации и тд) в отдельный поток. Примерный код приведен ниже: 1. Создаем отдельный поток, в котором вы будите скачивать файл (я поставил для эмуляции скачивания просто паузу на 5 секунд): type TMyTask = class (TThread) protected FOnTaskStarted: TThreadMethod; FOnTaskFinished: TThreadMethod; procedure DoStarted; procedure DoFinished; procedure Execute; override; public property OnTaskStarted: TThreadMethod read FOnTaskStarted write FOnTaskStarted; property OnTaskFinished: TThreadMethod read FOnTaskFinished write FOnTaskFinished; end; Реализация: { TMyTask } procedure TMyTask.DoFinished; begin if Assigned(OnTaskFinished) then OnTaskFinished; end; procedure TMyTask.DoStarted; begin if Assigned(OnTaskStarted) then OnTaskStarted; end; procedure TMyTask.Execute; begin Synchronize(DoStarted); try Sleep(5000); // Эмуляция выполнения 5 Секундной задачи finally Synchronize(DoFinished); end; end; Само использование такого потока будет следующим (в моем примере после выполнения операции, появится сообщение): TForm3 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private FMyTask: TMyTask; public procedure DoTaskStarted; // Callback, вызываемый в начале старта операции procedure DoTaskFinished; // Callback, вызываемый в конце выполнения операции. Аналог OnTerminate procedure StartMyTask; // Запуск задачи end; procedure TForm3.Button1Click(Sender: TObject); begin StartMyTask; end; procedure TForm3.DoTaskStarted; begin end; procedure TForm3.DoTaskFinished; begin ShowMessage('Выполнение задачи окончено'); end; procedure TForm3.StartMyTask; begin if FMyTask <> nil then begin FMyTasl.OnTaskStarted := nil; FMyTasl.OnTaskFinished := nil; FMyTask.Free; end; FMyTask := TMyTask.Create(True); FMyTask.OnTaskStarted := DoTaskStarted; FMyTask.OnTaskFinished := DoTaskFinished; FMyTask.Start; end; При таком подходе главный поток не будет блокироваться и будет корректно отрисовываться и работать.
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...