DMS

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

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

  • Посещение

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

Информация

  • Город
    Нью-Йорк
  1. Спасибо, интересная статья. Кстати, а почему при старте вызывается OnResize аж трижды?
  2. Как в приложении узнать, что в данный момент приложение свернуто и не находится на главном экране? Спасибо!
  3. Что невозможно сделать на Delphi для Android?

    Я думаю, неправильно все косяки сваливать на Firemonkey. Мы сами нередко виноваты в глюках Android-приложений.
  4. Что невозможно сделать на Delphi для Android?

    Проблема в самой идее FMX или в том, как она реализована? Что лучше: родные дельфийские компоненты или компоненты TMS FMX?
  5. Что невозможно сделать на Delphi для Android?

    Что-то эта ветка не вызвала ни у кого энтузиазма)) А ведь интересно прочитать про ограничения FMX.
  6. Рабочий стол среды

    Не знаю, что сделал, но теперь среда выглядит так. Как вылечить? Спасибо
  7. Под "зависел" имелось в виду, запускать ли следующую процедуру или нет (в зависимости от результатов предыдущей процедуры)
  8. Я не спорю, что всё правильно Delphi делает. Я просто хочу спросить совета, как сделать так, чтобы и потоки были (против зависания), и можно было управлять их запуском. Спасибо!
  9. Господа, подскажите, как вызвать друг за другом три процедуры с потоками внутри, но так - чтобы вызов каждой процедуры (начиная со второй) зависел от результатов предыдущей процедуры? Поясняю примером: procedure TForm1.Button1Click(Sender: TObject); begin FirstThread; SecondThread; ThirdThread; end; procedure TForm1.FirstThread; var I: Integer; begin Memo1.Lines.Add('First Begin: ' + TimeToStr(Now)); I := 0; TTask.Run( procedure begin while (I < 300000000) do Inc(I); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('First Thread: ' + TimeToStr(Now)); end) end); Memo1.Lines.Add('First End: ' + TimeToStr(Now)); end; procedure TForm1.SecondThread; var I: Integer; begin Memo1.Lines.Add('Second Begin: ' + TimeToStr(Now)); I := 0; TTask.Run( procedure begin while (I < 800000000) do Inc(I); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('Second Thread: ' + TimeToStr(Now)); end) end); Memo1.Lines.Add('Second End: ' + TimeToStr(Now)); end; procedure TForm1.ThirdThread; var I: Integer; begin Memo1.Lines.Add('Third Begin: ' + TimeToStr(Now)); I := 0; TTask.Run( procedure begin while (I < 900000000) do Inc(I); TThread.Synchronize(TThread.CurrentThread, procedure begin Memo1.Lines.Add('Third Thread: ' + TimeToStr(Now)); end) end); Memo1.Lines.Add('Third End: ' + TimeToStr(Now)); end; В Memo попадают сначала "Begin End" и только потом - First Thread, Second Thread, Third Thread. Если вставить внутри процедур булевы переменные (от которых должен зависеть вызов следующей процедуры), то у нас не получится реализовать задуманное, потому что все три процедуры отработают друг за другом, невзирая на результат в потоках.
  10. Я по запросу delphi THTTPClient BeginPost вообще не нагуглил ни одного примера, что как бы намекает.
  11. А как убить поток, который создан по методу Равиля Зарипова?
  12. Invalid pointer operation

    Здравствуйте! Что может быть причиной ошибки "Invalid pointer operation"? (Windows) Спасибо!
  13. Скажите, а что происходит с потоком, если во время его выполнения закрывается форма?
  14. Спасибо за пример, но немного не то. В вашей демке при перетаскивании Rectange растягивается, как гусеница, а хотелось бы чтобы перемещался Image как цельный объект.