Что нового

[Элементы GUI] Flicker Free Label и цвет фона: странное поведение и крэш приложения

white[43]

Новичок
Сообщения
4
Репутация
0
Дошли как-то у меня руки до FFLabel, потребовалось для обновления без мерцания, собственно, для этого оно и создавалось.
Скачано дополнение было из этой темы, всё обновлялось замечательно, вот только есть один странный баг: примерно один раз в 5-10 запусков Label создаётся с фоном #1D1D1C. Визуально это выглядит так:



Поначалу я с этим мирился и решил оставить на потом решение данной неприятности. И вот момент "на потом" наступил. Стал гуглить, оказалось, что FFLabel из вышеобозначенной темы слегка изменённая (урезанная) версия этого. Я обрадовался, подумал, что беды мои закончились, но не тут-то было. Стоило мне подключить "полную" версию, как даже элементарный GUI (который на скриншоте) вываливается с ошибкой. Самой ошибки не видно, после запуска проходит около 10 секунд и появляется запрос файрволла на отправку отчёта об ошибке, в консоли SciTE программа завершается с кодом -1073741819.

Почесал репу, решил вернуться к "короткой" версии FFLabel, попробовать задать фон label вручную через имеющуюся там функцию _GUICtrlFFLabel_GUISetBkColor, однако, и тут меня ждало разочарование. Функция была урезана и фон не меняла, точнее меняла, но только на #FFFFFF вне зависимости от значения, которое ей указывал.

В итоге я "решил" проблему через _GUICtrlFFLabel_SetData, но, как говорится, осадочек-то остался.

Возможно, кто-то сталкивался с проблемой фона в FFLabel и знает как его задать нормально, потому что он продолжает на долю секунды (в примере - на секунду) создаваться #1D1D1C до момента вступления в действие _GUICtrlFFLabel_SetData.

Код:
#Include <GUIFFLabel.au3>

$hGui = GUICreate( 'Test', 250, 250 )
$hLabel = _GUICtrlFFLabel_Create( $hGui, '', 10, 10, 230, 230 )
GUISetState(@SW_SHOW)

Sleep(1000)
_GUICtrlFFLabel_SetData( $hLabel, '', 0xFF0000 )

Sleep(1000)
 
Верх