Forum Replies Created
-
AuthorPosts
-
TCountParticipant'Support' wrote:
Пример нужен, так как я вот скомпилировал снова ASkinDemo.exe, там работает..
Скажите, ведь маска, установленная в Bevel Mask, применяется, если выбрана опция “Lowered” и в General Skin Options отключено использование предопределенных Lowered?
К чему я это спрашиваю? Вчера я ругался на пропавшие OuterEffects. Сегодня я открыл редактор скинов и на одной из секций выбрал Outer Level (Default Style) – Lowered (ранее было утсановлено NONE). И теперь заработало.
Только вот в чем прикол…
Ведь Default Style подразумевает стиль по умолчанию из настройки General Skin Options (Outer Effects), как я понимаю. По идее, в таком случае как раз стиль NONE и должен говорить редактору о том, что нужно использовать маску, определенную в Bevel mask секции. Или я не прав и при настройке NONE эффекты вообще отключаются? Или если установлен любой стиль, отличный от NONE, и он отключен в General Skin Options, то автоматом берется Bevel Mask секции? Не понятно)
Просто ранее у меня все время стоял стиль NONE и была указана маска Bevel Mask. И это работало. Теперь, оказывается, нужно выбирать стиль по умолчанию, чтобы Bevel Mask заработала.
Хотелось бы услышать комментарий разработчика, чтобы понять, как с этим работать)
TCountParticipantПерекомплилил с полученным файлом версии 11.10 – Enabled пришел в норму, Grayed тоже, но что же с OuterEffects? Эти эффекты не работают.
TCountParticipant'Support' wrote:Воможно адрес был неправильным, выслал на новый адрес.
Да, спасибо, уже получил) Ошибся в адресе.
Пока Вы будете решаете, будете ли добавлять возможность отступов в tsTitleBar, я сделал вариант такой:
1. Увеличил бордюры и заголовок засчет свойства формы BorderStyle=bsSizeable.
2. При таком стиле бордюров нужно было убрать ресайз формы, с тем условием, чтобы и курсоры ресайза не появлялись, решил это так:
procedure WMNCHitTest(var Message: TWMNCHitTest);
begin
inherited;
with Message do if Result in[HTLEFT,HTRIGHT,HTTOP,HTBOTTOM,HTBOTTOMRIGHT,HTBOTTOMLEFT,HTTOPRIGHT,HTTOPLEFT] then Result:=HTNOWHERE;
end;
Так что, нормально)
TCountParticipant'Support' wrote:Выслано на почту.
Отправил демку. А Ваше письмо так и не пришло.
TCountParticipant'Support' wrote:Кнопки в TsTitleBar выравниваются по центру заголовка.
Все-таки хотя бы небольшой самый простой пример поможет увидеть что да как.
Можно послать его на support@alphaskins.com
Хорошо, пришлю)
Могу я у Вас еще попросить обновленный файл версии 11.10?
А то обновился до этой версии, а в ней не отображаются OuterEffects, статут Enabled и непонятно как отображается Grayed.
У меня от последних двух свойств многое зависит и я поэтому не пойму, работают функции программы или нет)) 😆
TCountParticipant'Support' wrote:Нужно уточнить, речь идет о компоненте TsTitleBar или о системных кнопках?
Пример очень помог бы.
Пример я быстро не могу сделать, но могу описать суть и Вы должны понять)
Вобщем:
1. Используется sTitleBar.
2. У формы отключены ExtendedBorders.
3. Сескция FormTitle не применяется, вместо нее выводится секция Form с уже нарисованным заголовком.
То есть, получается, что визуально у меня заголовок может быть любым по высоте, но фактически система устанавливает лимит в 25px и AC отталкивается от этих данных. В итоге я не могу сдвинуть контент в заголовке на нужный мне промежуток сверху.
Как раз я думал, что в sTtileBar можно как-то начудить со смещением. Ему же все равно где выводить итемы…
TCountParticipant'Support' wrote:Постараюсь сделать оба пункта в ближайшем релизе.
Буду ждать)
TCountParticipant'Support' wrote:Стандартные вроде также себя ведут.
Почти также. У стандартных просто рамочка синяя у кнопок в фокусе, они не закрашиваются как будто на них курсор навели:)
В принципе, ладно, это не критично. Просто буду переводить фокус и все)
TCountParticipant'Support' wrote:Не совсем понятна проблема.
Кнопка рисуется активной потому что имеет фокус. Как должно быть?
Мне уже и самому не совсем понятна проблема:)
Не, ну мне вот что непонятно:
Почему кнопка рисуется как активная, если она просто в фокусе (с отключенным TabStop)?
Вот на скрине две кнопки. Последнюю я нажал левую. Нажал и отпустил, убрал с нее курсор. Почему она рисуется активной?
Как-то вообще не радует такой вид.
Я еще понимаю, если бы у кнопки был активен TabStop. В этом случае да, это дает возможность переключаться по компонентам и нужно, чтобы было видно, на каком компоненте пользователь в данный момент.
Но я отключил этот TabStop, а кнопка все равно вроде как активная рисуется.
TCountParticipant'Support' wrote:Процедуры, рисующие текст с такой обводкой, требуют или SkinData или SkinIndex в параметрах, то есть там все завязано на секцию скина.
Можно эмулировать это, выводя со смещением 1 текст с цветом обводки (перед выводом основного текста).
Спасибо за ответ. Ну я так и сделал.
TCountParticipant'Support' wrote:А каким образом заменяется иконка в AIL?
Function AddUserIcon(const Img: TJpegImage;Inx: integer=-1): boolean;
var BMP: TBitmap;Icon: HICON;
begin
BMP:=TBitmap.Create;
TRY
BMP.Assign(Img);
IF Inx>-1 THEN WITH UIcons.Items[Inx] DO BEGIN
UIcons.AcBeginUpdate;
ImageFormat:=ifPNG;
ImgData.Clear;
FreeAndNil(CacheBmp);
Icon:=MakeIcon32(BMP);
if Icon0 then begin
ImageList_ReplaceIcon(UIcons.Handle,Inx,Icon);
DestroyIcon(Icon);
end;
UIcons.AcEndUpdate;
END ELSE UIcons.Add(BMP,NIL);
Result:=True;
EXCEPT Result:=False;END;
BMP.Free;
end;
UIcons – это sAlphaImageList
TCountParticipant'Support' wrote:А, сорри, это секция DIVIDERV
Вот! Теперь все OK) Спасибо!
TCountParticipant'Support' wrote:Это секция MENUCAPTION
Дело в том, что я и ее проверял…Только вот никакие изменения в этой секции не приносят результата.
Линия всегда черная и всегда жирная, независимо от шрифта и секции MENUCAPTION.
Как ее настраивать-то?
P.S. Скрин увеличил специально.
TCountParticipant'egorea1999' wrote:Как сделать свой Control на основе Альфаскинов?
Как и стандартный.
TCountParticipant'Boris_S' wrote:Вы правы. Если сделать какой-либо скин активным, эта проблема уходит. Кнопки рисуются как надо.
Но я даю возможность пользователю работать в режиме скинирования или отказаться от него.
На мой взгляд это его право. Проблема возникает тогда, когда пользователь отказывается от скинирования.
Полагаю, что sSpeedButton при отключенном скинировании не может повторить поведение стандартной кнопки.
В таком случае, возможно, Вам подошел бы другой вариант:
Не конвертировать компоненты в AC (оставить стандартные), но кинуть на форму skinManager и SkinProvider, а в свойстве ThirdParty SkinManager указать стандартные компоненты, которые будут скинироваться в режиме включенного скинирования.
Правда, такой вариант лишит Вас всех прелестей AC, Вы не сможете управлять новыми свойствами компонентов AC через стандартные компоненты.
Если же проблема возникает только с sSpeedButton, то, возможно, разработчик AC Вам поможет устранить данную неувязочку)
P.S. А еще Вы можете попробовать оставить все как есть, только лишь заменить sSpeedButton на TSpeedButton и указать их в ThirdParty скинмэнеджера.
TCountParticipant'Critically' wrote:P.S. Но если вас не затруднит не могли бы вы рассказать про то как сделать секцию для кругов ?
Понимаю, TShape имеет несчастный и непривлекательный вид) В таком случае поможет только редактор скинов.
Я так понимаю, Вы еще не работали с ASkinEditor. Для начала скачайте его с сайта, откройте в нем любой скин и посмотрите, как и что устроено. Для знакомства.
Также есть мануал по редактору:
http://www.alphaskins.com/showdoc.php?l=ru&n=101
И нарисуйте картинку круга, как вы его хотите видеть (просто картинку любого цвета). Я посмотрю и могу посоветовать, как это дело реализовать и встроить в скин.
TCountParticipant'Boris_S' wrote:Посылаю Screen экрана. Правая кнопка – TSpeedButton в режиме Enabled = false.
Вторая от левого края кнопка – TsSpeedButton в режиме Enabled = false.
Скажите, если Вы перешли на AC, то почему же Ваша программа выглядит как стандартная? Не видно ни малейшего признака скинирования компонентов и формы. :wacko:
Возможно, Вы просто заменили компоненты, но ведь для скинирования нужно на форму добавить еще TsSkinManager и TsSkinProvider.
TCountParticipant'Boris_S' wrote:Кнопки TSpeedButton рисуются серым цветом, когда их свойство Enabled = false.
Для кнопок TsSpeedButton это не так.
“Не так” – это как? Вот скрин хотя бы посмотреть)
TCountParticipant'Critically' wrote:Как такого добиться ?
BUTTON_HUGE имеет маску определенного размера. То есть, идеальный круг можно получить, только если установить размеры кнопки размеру маски.
Но это далеко не всегда удобно, потому что для дизайна Вашей проги такие размеры могут не подойти. Тем более, это все-таки кнопка)
Но почему бы не создать секцию для кругов в редакторе скинов для своих собственных нужд?
Или почему не использовать TShape?
TCountParticipant'egorea1999' wrote:Интересно, нужно делать слой-маску в редакторе скинов или как?
Если сможете продемонстрировать на примере – буду очень благодарен.
Набросал быстренько пример. Не знаю, это ли Вы хотели.
Использовался скин FM, в нем я создал новую секцию “MYPANEL” и добавил фон к форме.
Вобщем, качайте архив по ссылке:
-
AuthorPosts