PageControl изменить стиль заголовка TabSheet
Модератор: Модераторы
PageControl изменить стиль заголовка TabSheet
Есть несколько листов на форме PageControl. Надо изменить начертание (например, сделать жирным шрифт) заголовка одного из листов. Не смог найти решения. Свойства а-ля TabDraw не нашел. Помогите, пожалуйста, советом или примером кода.
Lazarus 1.0.8, FPC 2.6.6
Lazarus 1.0.8, FPC 2.6.6
Тема еще актуальна? Собственно тоже интересует вопрос по TabSheet в PageControl, плюс ко всему хотелось бы узнать как меняется цвет фона закладки (только ярлычка).
Или может есть альтернатива компоненту?
Lazarus 1.0.10, FPC 2.6.2
Или может есть альтернатива компоненту?
Lazarus 1.0.10, FPC 2.6.2
Посмотрите, гдет валялась альтернатива. Кажись на вики компонентах, плюс мелькало и на сайте freepascal.ru (кажись прикрепленная тема по компонентам).
Тут по форуму посмотрел, кто-то какое-то решение вроде нашел, но датируется вроде 2008 годом и ссылка на решение уже не рабочая.
(уже потерял этот топик)
Ох, не могу найти ни где, может ссылкой поделитесь?
Кстати в rxLib есть этот компонент?
(уже потерял этот топик)
Ох, не могу найти ни где, может ссылкой поделитесь?
Кстати в rxLib есть этот компонент?
подобие да но смысл другой...
то что я имел ввиду - http://wiki.freepascal.org/TGradPageControl
Ну и есть в Codetyphon "прикольные" компоненты (3Д вид
Добавлено спустя 50 минут 29 секунд:
https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/gradcontrols так точнее
В пакете кнопки и табконтрол. В принципе только что запустил у себя норм. работает что кнопки что таб. Таб только ламерски подправил, в рантайме создал таб и отладчик направил на что ругается и закоментил в unit ugradtabcontrol;
Код: Выделить всё
procedure TGradTabControl.AlignPage(APage : TGradTabPage; ARect : TRect);
begin
if APage <> nil then
with APage do
begin
Left:=ARect.Left;
Top :=ARect.Top;
{ Width := 40;//ARect.Right;
Height:= 20;//ARect.Bottom; }
end;
end; Хотя может и не правильно, но он мне не интересен
Лазарь 1.1 фпс 2.7.1
спасибо. попробую на версии 1.1, т.к. на версии 1.0.10 выдает ошибку типа loop detected при добавлении закладки (без разницы, в рантайме или через конструктор)
Хмм... ну в общем попробовал на 1.1 / fpc 2.7.1
ошибка такая, даже не могу понять куда копнуть

ошибка такая, даже не могу понять куда копнуть

1. Код видели? Просто закоментируйте Width и Height в процедуре TGradTabControl.AlignPage(. Модуль в сорцах компонента. И очистить и пересобрать компонент.
2. Установить CodeTyphon и забыться от переизбытка набора компонентов в нем. Там есть и парочка реализаций красивых табов.
2. Установить CodeTyphon и забыться от переизбытка набора компонентов в нем. Там есть и парочка реализаций красивых табов.
эх, пардон - не лава а ORCE (кажись их переименовали, ранее был Lava). Смысл этого набора - нечто похоже на "огненную обезьяну" в наборе дельфи."прикольные" компоненты (3Д вид). Лава кажись
Да конечно, видел
комментил как сказали
Ну в общем там всё равно ошибка loop detected, но уже после того как кинешь компонент на форму, IDE зависает на минутку и потом ругается ошибкой

ну в общем ладно, похоже что эта бетка не работает, но, всё-равно спасибо. а тифон посмотрю на досуге
Ну в общем там всё равно ошибка loop detected, но уже после того как кинешь компонент на форму, IDE зависает на минутку и потом ругается ошибкой

ну в общем ладно, похоже что эта бетка не работает, но, всё-равно спасибо. а тифон посмотрю на досуге
т.е. Вы изменили исходник, пересобрали пакет, а потом и лазарь и у Вас выскакивает диалог? Мдя- бывает
. Компонент работал очень много лет назад и некоторые вещи уж очень не сильны. Ну меняет цвет владки, ну еще пару вещиц.
А тифон, впринципе, для начала сойдет (если нравиться с большим кол-вом компонентов "шерстить") А так, свн версия лазаря куда нормальнее тифона ( хотя: х.з. на вкус и цвет...).
. Мне бы туда браузер впихнуть и для личной красивости очень неплохо будет.
Добавлено спустя 23 минуты 4 секунды:
но с цветом надо играть аккуратно. Однажды у себя разукрасил чуток прогу. А потом в лине запустил и ощутил прелесть
. Перешел к стандарту. А если надо простенькое и красивое - МСЕ (оно кругом одинаково будет, ели не забывать некоторые вещи).
А тифон, впринципе, для начала сойдет (если нравиться с большим кол-вом компонентов "шерстить") А так, свн версия лазаря куда нормальнее тифона ( хотя: х.з. на вкус и цвет...).
уделите внимание ORCE демкам, кажись оно Вам подойдета тифон посмотрю на досуге
Добавлено спустя 23 минуты 4 секунды:
но с цветом надо играть аккуратно. Однажды у себя разукрасил чуток прогу. А потом в лине запустил и ощутил прелесть
агаamateur писал(а):т.е. Вы изменили исходник, пересобрали пакет, а потом и лазарь и у Вас выскакивает диалог?
много не надо. надо лишь цвет фона "ярлыка". остальное всё устраиваетamateur писал(а):если нравиться с большим кол-вом компонентов "шерстить"
а насчет посмотреть тифон, так это я имел ввиду возможность выдрать от-туда что-либо для своих целей.
с этим вкурсе, поэтому минимально всё.amateur писал(а):но с цветом надо играть аккуратно. Однажды у себя разукрасил чуток прогу. А потом в лине запустил и ощутил прелесть. Перешел к стандарту.
В любом случае спасибо за подсказки.
Возвращаясь, к теме, всё ни как не могу успокоиться
Вот небольшие результаты:
установил версию 4.41, к сожалению не нашел парочки
Есть один более-менее красивый (в стиле metro), но и тот коряво работает
возможность задать цвета в нем есть, для наименования самого контрола работает, есть даже при наведении мыши цвет меняется и т.п.
но для самих табов - не работает., называется FZControl
Разработчик http://forum.lazarus.freepascal.org/index.php?topic=20204.0 попросил чтобы выложили на гуглкод (собственно что народ и сделал)
ORCE или лаву в тифоне не обнаружил (может пропустил?)
Нашел замечательный (бесплатный для СНГ) проект http://www.alphaskins.com/ но он для дельфи
Кстати, думал копнуть в сторону самостоятельной отрисовки табов, но почему-то не нашел у PageControl свойства OwnerDraw и события OnDrawTab. WTF?!
В общем, для меня тема еще актуальна
Вот небольшие результаты:
amateur писал(а):Установить CodeTyphon и забыться от переизбытка набора компонентов в нем. Там есть и парочка реализаций красивых табов.
amateur писал(а):эх, пардон - не лава а ORCE (кажись их переименовали, ранее был Lava). Смысл этого набора - нечто похоже на "огненную обезьяну" в наборе дельфи.
установил версию 4.41, к сожалению не нашел парочки
Есть один более-менее красивый (в стиле metro), но и тот коряво работает
возможность задать цвета в нем есть, для наименования самого контрола работает, есть даже при наведении мыши цвет меняется и т.п.
но для самих табов - не работает., называется FZControl
Разработчик http://forum.lazarus.freepascal.org/index.php?topic=20204.0 попросил чтобы выложили на гуглкод (собственно что народ и сделал)
ORCE или лаву в тифоне не обнаружил (может пропустил?)
Нашел замечательный (бесплатный для СНГ) проект http://www.alphaskins.com/ но он для дельфи
Кстати, думал копнуть в сторону самостоятельной отрисовки табов, но почему-то не нашел у PageControl свойства OwnerDraw и события OnDrawTab. WTF?!
В общем, для меня тема еще актуальна
Хотелось бы поддержать Вас в Вашем поиске. Для меня тема тоже еще актуальна. Для текущего проекта я, конечно, нашел другое воплощение замысла, но хотелось бы получить правильную реализацию, а не выход из положения. Тем более, что в родственнике (delphi), данный функционал давно уже есть.
Случайно откопал ссылку по некой лаве http://www.delphiaccess.com/forum/lazar ... a-lazarus/
но честно
нифига не понял. всё на заморском языке. но картинки выглядят красиво 
Добавлено спустя 48 минут 8 секунд:
Итак.
Всё-таки нашел в тифоне компонент, путем пробы.
В общем называется он не ORCE а ORCA (у меня это самая последняя вкладка оказалась среди компонентов)
привычных иконок там нету, а есть что-то напоминающее работу с 2D и 3D графикой.
В общем закинул на форму TD2Scene, а в нем уже по правой кнопке можно добавлять итемы
Вот примерно накидал. Одну из вкладок я закрасил красным градиентом. В общем, надо ковырять этот компоненты, выглядит довольно красиво.
В том числе, у этого компонента, есть некий редактор темы оформления (или стиль оформления). тоже по-правой кнопке.
Осталось выяснить, будет ли это всё работать под линуксом, а также какой будет размер исполняемого файла (хотя для меня это не критично, т.к. "почти" делаю для себя
)
Добавлено спустя 4 часа 7 минут 3 секунды:
Установил этот ORCA в Lazarus (также потребовалось воткнуть компоненты directx и opengl), собрал аналогичный проект (что на картинке), exe занимает 27 MB
Что-то мне подсказывает, что в лине эта штука не заведется (... пока некогда проверять, если кто пробовал - отпишитесь)
но честно
Добавлено спустя 48 минут 8 секунд:
Итак.
Всё-таки нашел в тифоне компонент, путем пробы.
В общем называется он не ORCE а ORCA (у меня это самая последняя вкладка оказалась среди компонентов)
привычных иконок там нету, а есть что-то напоминающее работу с 2D и 3D графикой.
В общем закинул на форму TD2Scene, а в нем уже по правой кнопке можно добавлять итемы
Вот примерно накидал. Одну из вкладок я закрасил красным градиентом. В общем, надо ковырять этот компоненты, выглядит довольно красиво.
В том числе, у этого компонента, есть некий редактор темы оформления (или стиль оформления). тоже по-правой кнопке.
Осталось выяснить, будет ли это всё работать под линуксом, а также какой будет размер исполняемого файла (хотя для меня это не критично, т.к. "почти" делаю для себя
Добавлено спустя 4 часа 7 минут 3 секунды:
Установил этот ORCA в Lazarus (также потребовалось воткнуть компоненты directx и opengl), собрал аналогичный проект (что на картинке), exe занимает 27 MB
Что-то мне подсказывает, что в лине эта штука не заведется (... пока некогда проверять, если кто пробовал - отпишитесь)
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Вот что еще отрыл на просторах интернета, про подсветку табов http://stackoverflow.com/questions/9340940/is-it-possible-to-change-the-colour-of-ttabsheet-tabs
собственно вкратце, там говориться про only windows и отключенный манифест.
и пример кода с картинкой (результатом). может кому пригодиться
код не проверял, т.к. для меня это не вариант
собственно вкратце, там говориться про only windows и отключенный манифест.
If it's enough for you to get a little bit tricky solution working only on Windows with themes disabled then try the following:
Un-check the Use manifest file to enable themes (Windows only) option from Project / Project Options ... project settings dialog and paste the following code into your unit with page control. It uses the interposed class, so it will work only in units where you paste this code
и пример кода с картинкой (результатом). может кому пригодиться
Код: Выделить всё
uses
ComCtrls, Windows, LCLType;
type
TPageControl = class(ComCtrls.TPageControl)
private
procedure CNDrawItem(var Message: TWMDrawItem); message WM_DRAWITEM;
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
implementation
procedure TPageControl.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
begin
if not (csDesigning in ComponentState) then
Style := Style or TCS_OWNERDRAWFIXED;
end;
end;
procedure TPageControl.CNDrawItem(var Message: TWMDrawItem);
var
BrushHandle: HBRUSH;
BrushColor: COLORREF;
begin
with Message.DrawItemStruct^ do
begin
case itemID of
0: BrushColor := RGB(235, 24, 33);
1: BrushColor := RGB(247, 200, 34);
2: BrushColor := RGB(178, 229, 26);
else
BrushColor := ColorToRGB(clBtnFace);
end;
BrushHandle := CreateSolidBrush(BrushColor);
FillRect(hDC, rcItem, BrushHandle);
SetBkMode(hDC, TRANSPARENT);
DrawTextEx(hDC, PChar(Page[itemID].Caption), -1, rcItem, DT_CENTER or
DT_VCENTER or DT_SINGLELINE, nil);
end;
Message.Result := 1;
end;код не проверял, т.к. для меня это не вариант
