Forum Replies Created
-
AuthorPosts
-
AndrewParticipant'Support' wrote:
Проблема не в CommonSections.
Да, похоже на то: если в свойстве SkinSection метки прописать, например, STATUSBAR, то наблюдается аналогичное поведение.
'Support' wrote:Дело в том, что метки берут цвет шрифта от парента, так как в разных скинах цвета парента может быть очень разным, что влияет на читаемость меток.
На мой взгляд, приоритет при выборе цвета должен быть у поля SkinSection, а если оно не заполнено, тогда запрашивать у родителя.
P.S. Странно, что до последних версий на протяжении нескольких лет все было нормально.
AndrewParticipantВозможно ли у TsScrollBar изменить размер кнопок, как, например, в TMemo ?
AndrewParticipantВ версии 12.10 проблема осталась.
Демка, собранная с версией 12.04: все метки – белые
[attachment=8328:Demo_12.04.png]
Демка, собранная с версией 12.10: метка на панели – черная
[attachment=8329:Demo_12.10.png]
AndrewParticipantВ версии 12.08 исправленоUpd. Исправлено частично: если sLabel положить на sPanel – текст остается черным. Если у панели прописать SkinSection = TRANSPARENT или GROUPBOX, то текст метки – белый.
AndrewParticipantУ многих словарей есть функция “Перевод слова под курсором” для реализации которой используются хуки. Я так понимаю, AlphaControls тоже активно их использует. При корректной реализации, конфликтов быть не должно, так что, проблема, вероятно, все-таки имеется.
To Inegeld: Lingvo, насколько я помню, может переводить слово под курсором как по горячим клавишам, так и просто при наведении и задержке курсора. Возможно, отключение последнего в настройках даст возможность использовать обе программы одновременно.
AndrewParticipantСтолкнулся с той же проблемой (AC9.19 D2007 Win7) – на Win8.1 не проявляется.
На Win7:
* Включение ExtendedBorders решает проблему
* При отключенном ExtendedBorders отключение AnimEffectsMinimizing частично решает проблему: при разворачивании сначала появляется белый квадрат на том месте где должно быть окно, а потом окно “летит”, увеличиваясь, из таскбара и в конце концов занимает место белого квадрата.
AndrewParticipantБольшое спасибо, помогло.
[attachment=6423:TsLabelFX_no_trans_4.png]
А что насчет TImage под TsLabel?
Перебирать все компоненты, лежащие ниже Label и имеющие с ним пересечения, при каждой перерисовке, наверное, накладно.
Может быть новый компонент TBGImage, который в DesignTime отображается как TImage, а в RunTime невидимый, но при отрисовке фона формы накладывает хранящееся в нем изображение? В этом случае все лежащие на форме компоненты получат корректный фон родителя.
AndrewParticipantОн в архиве: BinSkinsWhiteAndBlue (распакованный)
AndrewParticipantПрикрепил
[attachment=6420:TsLabel_trans_v2.zip]
На этом примере лучше видно
[attachment=6421:TsLabelFX_no_trans_3.png]
[attachment=6422:TsLabel_trans_v3.zip]
Если положить под Label TImage или TsImage, то получается тот же эффект – белые углы. Я понимаю, что Image не является родителем для Label, но может есть какой-нибудь способ корректно отобразить прозрачность хотя бы для случая, когда Label полностью вписывается в границы Image'а.
AndrewParticipantLabel лежит на панели, у которой фон SKIN_SECTION отличается от формы (в данном случае панель выглядит как кнопка). По идее панель должна быть родителем или компоненты всегда берут фон формы?
AndrewParticipantИ снова здравствуйте.
Спасибо за исправление, но появилась новая проблема, возможно связанная с предыдущей, поэтому не создаю новую тему.
Создал новую секцию в скине, в качестве ControlBorders используется область MasterBitmap с маской. Результат видно на скриншоте ниже:
[attachment=6414:TsLabelFX_no_trans_2.png]
Справа вынесен увеличенный левый верхний угол (сверху вниз):
- TsLabelFX на форме
- TsLabelFX на панели
- Фон секции в MasterBitmap
- Маска секции в MasterBitmap
При расположении TsLabelFX на форме, маска вроде применяется правильно, а при расположении на панели результат не совпадает с ожидаемым.
Пробовал заменять TsLabelFX на TsLabel и TsPanel, обновил компоненты с 8.42 до 8.45 – без изменений.
Оффтоп: Чем Вы создаете маску, т.е как из 32-битного png получить 24-битный bmp в виде изображения и маски? Написал свое, но не может быть, чтобы не было готового решения (Яндекс отказывается сотрудничать). Или может есть возможность использовать png напрямую?
AndrewParticipantБудем ждать. Спасибо
AndrewParticipantА в чем проявляется “зависание”? Столкнулся с тем же или чем-то похожим: программа сворачивается на панель задач и больше не разворачивается. Но поскольку ее можно закрыть через контекстное меню иконки на панели задач не прибегая к диспетчеру, то зависанием это вроде и не назовешь.
По показаниям свидетелей (у меня на Win7 x64 не воспроизводится ни с моим приложением, ни с демкой, предоставленной IoRRik) программа нормально сворачивается и разворачивается какое-то время, а потом очередная минимизация становится для нее роковой. Причем произойти это может часа через 3 после запуска. Первое замечание было от тестера еще в апреле, вчера – дважды проявилось у другого человека.
В обоих случаях проблемы наблюдались на WinXP. Разработка велась на D2007. Последняя сборка на AC 7.34, однако замечания были еще до выхода этой версии.
AndrewParticipant'GuSoft' wrote:Ну в данном случае вопрос даже не “кто обрабатывает PNG”, а “как” он это делает.
Тем не менее, вопрос поддержке: есть ли причины, мешающие сделать так?
Code:{$IF CompilerVersion >= 20} // Delphi 2009 or later
{$DEFINE NOACPNG} // Do not use AlphaControls Png loader automatically
{$ELSE}
{.$DEFINE NOACPNG} // Do not use AlphaControls Png loader automatically
{$IFEND}Другими словами: стоит ли использовать свой велосипед там, где уже есть встроенный?
AndrewParticipantК теме минимизации:
Проблема 1.
Окно программы после первого запуска и восстановленное после минимизации:
[attachment=4852:1. FirstStart.png][attachment=4853:2. AfterMinimize.png]
Думаю, найти 2 отличия труда не составит.
Проблема 2.
После минимизации (или восстановлении – не знаю) окна происходит утечка памяти:
[attachment=4854:3. CloseAfterMinimize.png]
Причем с каждой последующей минимизацией ситуация усугубляется.
Проблема 3.
Если включены ExtendedBorders, при первом после запуска сворачивании окна остается артефакт под курсором – исчезает сам примерно через секунду:
[attachment=4855:Skins742Bug.png]
При последующих сворачиваниях не наблюдается.
Под WinXP (если включены ExtendedBorders) данная проблема не проявляется, но наблюдается однократное мерцание окна после каждого восстановления из минимизированного состояния.
–
AC 7.42, D2007, Win7x64
AndrewParticipantСтановится совсем непонятно…
Если установить жирный шрифт или “задизейблить” кнопку, текст, как и положено, отрисовывается коричневым цветом.
Если же шрифт нормальный и кнопка в обычном состоянии, текст отрисовывается черным, хотя прямоугольник (с заданным тем же цветом) отрисовывается коричневым. При этом в “горячем” и “нажатом” состояниях – текст также отрисовывается коричневым.
Code:procedure TForm1.sSpeedButton1Paint(Sender: TObject; Bmp: TBitmap);
var
Btn: TsSpeedButton;
begin
with Bmp.Canvas do
begin
Btn := TsSpeedButton(Sender);Font.Color := sSkinManager1.gd[Btn.SkinData.SkinIndex].FontColor[1];
if Sender = sSpeedButton3 then
Font.Style := [fsBold];
Font.Size := 20;if Btn.CurrentState = 2 then
TextOut(11, 20, 'TEXT');
else
TextOut(10, 19, 'TEXT');Pen.Color := Font.Color;
Brush.Color := Font.Color;
Rectangle(80, 15, 120, 55);
end;
end;[attachment=4232:Screenshot2.png]
Выставление свойству SkinSection родного значения “SPEEDBUTTON” никак не влияет на ситуацию.
Хм, нашел костыль – передернуть свойство FontStyle:
Code:Font.Style := [fsItalic];
Font.Style := [];В этом случае текст отрисовывается коричневым во всех состояних.
Тогда, используя состояние кнопки, получаем полное соответствие цветов своего текста и заголовка:
Code:Font.Color := sSkinManager1.gd[Btn.SkinData.SkinIndex].FontColor[Btn.CurrentState+1];Спасибо за наводку на свойство “CurrentState”, которое я долго и безуспешно искал.
AndrewParticipantДа, при обновлении компонентов, скины беру из архива. Единственное, они распакованы и все bmp преобразованы в 24-битные (для запуска под Wine'ом)
Уточнение: такое поведение наблюдается и при использовании неизмененных запакованных скинов.
AndrewParticipantВерсия 6.68. Там. к сожалению, нет ни States, ни Props.
Не могу найти в хелпе описание gd.FontColor. Попробовал так:
Code:Font.Color := Btn.SkinData.SkinManager.gd[Btn.SkinData.SkinManager.GetSkinIndex('BUTTON')].FontColor[Btn.CurrentState];В неактивном состоянии цвет текста как у 'BUTTON_HUGE' – желтоватый, в остальных – черный.
-
AuthorPosts