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

Лидеры

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

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

  1. krapotkin

    фремы динамическое создание

    я практически везде использую динамически создаваемые фреймы. вообще никаких проблем не встречал главное - четко помнить, что данные должны храниться в модели данных, а интерфейс - работать с этой моделью при этом некоторые вещи в рамках программы являются глобальными синглтонами, например, объект, содержащий настройки программы и данные текущего залогиненного юзера. ну и часто - главная форма программы. код при создании фреймов не в точности, но похож на приведенный в старте темы
    1 балл
  2. krapotkin

    DOC to PNG

    http://yuri.elmeh.ru/
    1 балл
  3. Сталкивались. По началу очень много)) Приложение, активно использующее GUI, то бишь всякие прогресс-бары, видео, большое кол-во элементов с картинками и т.д. и т.п., требует обязательного использования TThread.Synchronize. Иначе вы можете сначала ничего не заметить, может не быть никаких глюков и т.п.. А потом они могут так же внезапно появиться. Может быть такое, что у Вас их не будет (глюков), а на другом компе - будут. Может зависеть от множества факторов. НО! Стоит отметить, что если тот или иной элемент интерфейса не требует именно "моментального" отображения информации (например простое отображение нового значения TLabel), и в данный момент у Вас не происходит ничего активного на форме приложения (например - вывод видео или частая смена картинок и т.п.), то, конечно, делать синхронизацию не обязательно. Однако, это может привести в дальнейшем к непониманию возникновения багов, в том случае если ваш код изменится и появится что-то "тяжелое" для отрисовки. Эти баги могут быть не явными. Т.е. вы, например, делаете обновление TLabel при "загрузке" чего-либо и обновлении TProgressBar, а текст (новое значение) не отображается. А вот если сделать обновление TLabel и TProgressBar в TThread.Synchronize, то все будет ок. Тут есть еще одно НО ))) Оно заключается в том, чтобы процесс "обновления" был оптимизирован. Это как слишком частый вызов Application.ProcessMessage в процедуре выполняющий вычисления - будут приличные тормоза! Пишите код оптимально. Не делайте лишних вызовов TThread.Synchronize, но и не забывайте о них... Как-то так)
    1 балл
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...