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

Tot999

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

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

  • Посещение

Активность репутации

  1. Like
    Tot999 отреагировална krapotkin в TPaintox+Tbitmap   
    если все шустро, то и норм ))
  2. Like
    Tot999 отреагировална Brovin Yaroslav в Фоновое выполнение операции без "замораживания" отрисовки   
    Вся отрисовка выполняется в главном потоке приложения. Поэтому, если вы пытаетесь выполнить скачивание файла в основном потоке, то вся отрисовка приостановится до момента окончания вашей операции. Поэтому правило хорошего тона - это вынесение долгих операций (загрузка, ответ авторизации и тд) в отдельный поток. 
     
    Примерный код приведен ниже:
    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; При таком подходе главный поток не будет блокироваться и будет корректно отрисовываться и работать.
  3. Like
    Tot999 отреагировална Brovin Yaroslav в Как правильно рисовать на канве?   
    Отключить нет. Форма сама определяет при помощи контролов, какие области формы нужно перерисовать. Поэтому, если нужно добиться такого эффекта, то лучше использовать опять же временный буфер. И в нем делать наложение своей картинки на старую.
  4. Like
    Tot999 получил реакцию от Anatoliy в TPaintox+Tbitmap   
    Добрый день! 
    Решил покопаться в своей старой спрайтовой игрушке, чтобы освежить в памяти знания и состряпать что-нибудь новое. Возникли сомнения, нормально ли сделано графическое отображение, можно ли доработать.
    Все спрайты в дизайнтайме распиханы по Timagelist-ам.  На старте приложения я загружаю битмапы из имэджлистов в свои обджектлисты, подгоняя под нужный размер. 
    MeduzasBitmpAr : array [1..numofMeduzas] of TObjectList<Tbitmap>;  
    Дальше рисую по таймеру в основном окне игры Tpaintbox.OnPaint:
             
    В принципе, даже на слабеньких телефончиках, всё вроде бодро. Но может, опытные товарищи чего подскажут, а то я 3ий день в собственном соку варюсь, ничего толкового.
  5. Like
    Tot999 отреагировална Brovin Yaroslav в [Android/Windows] [XE7] Как запретить прокручивание?   
    Тогда, отключение:
    ScrollBox.AniCalculations.TouchTracking := []; Включение:
    ScrollBox.AniCalculations.TouchTracking := [ttVertical];
  6. Like
    Tot999 отреагировална Andrey Efimov в [Android] Почему у меня не принимается стиль, загруженный в TStyleBook?   
    Укажите стиль в форме, свойство StyleBook.
  7. Like
    Tot999 отреагировална Равиль Зарипов (ZuBy) в WebForm.Fmx   
    делал когда-то так, может что изменилось
    uses {$IFDEF ANDROID}REST.Authenticator.OAuth.WebForm.FMX{$ELSE}REST.Authenticator.OAuth.WebForm.Win var WebView: Tfrm_OAuthWebForm; ... procedure TForm1.FormCreate(Sender: TObject); begin   WebView := Tfrm_OAuthWebForm.Create(self);   WebView.OnTitleChanged := self.OAuth2_GoogleTasks_BrowserTitleChanged; end; ... procedure TForm1.OAuth2_GoogleTasks_BrowserTitleChanged(const ATitle: string;   var DoCloseWebView: boolean); begin   if Pos('Success code', ATitle) > 0 then   begin     AuthCode := Copy(ATitle, 14, Length(ATitle));     if (AuthCode <> '') then     begin       Memo1.Lines.Add(AuthCode);       DoCloseWebView := true;       WebView.Release;     end;   end; end; ... WebView.ShowWithURL(LURL);
×
×
  • Создать...