| | | | |
Создание своего стиля в графическом интерфейсе. Продолжение темы полупрозрачных кнопок. | Полный текст материала
Другие публикации автора: Cepгей Poщин
Важно:- Страница предназначена для обсуждения материала, его содержания, полезности, соответствия действительности и так далее. Смысл не в разборке, а в приближении к истине :о) и пользе для всех.
- Любые другие сообщения или вопросы, а так же личные эмоции в адрес авторов и полемика, не относящаяся к теме обсуждаемого материала, будут удаляться без предупреждения авторов, дабы не мешать жителям нормально общаться.
- При голосовании учитывайте уровень, на который расчитан материал. "Интересность и полезность" имеет смысл оценивать относительно того, кому именно предназначался материал.
- Размер одного сообщений не должен превышать 5К. Если Вам нужно сказать больше, сделайте это за два раза. Или, что в данной ситуации правильнее, напишите свою статью.
Всегда легче осудить сделанное, нежели сделать самому. Поэтому, пожалуйста, соблюдайте правила Королевства и уважайте друг друга.
Добавить свое мнение.
| | Содержит полезные и(или) интересные сведения | [1] | 1 | 100% | | | | Ничего особенно нового и интересного | [2] | 0 | 0% | | | | Написано неверно (обязательно укажите почему) | [3] | 0 | 0% | | Всего проголосовали: 1 | | | Все понятно, материал читается легко | [1] | 1 | 100% | | | | Есть неясности в изложении | [2] | 0 | 0% | | | | Непонятно написано, трудно читается | [3] | 0 | 0% | | Всего проголосовали: 1 |
[Фоновые рисунки, прозрачность, скины ] [Внешний вид в стиле ...]
Отслеживать это обсуждение
Всего сообщений: 1706-11-2009 01:30>>> такое выражение начал судить о вашей некомпетентности в данном вопросе
Ну и напрасно. Судить о компетентности программиста в области программирования нужно по разрабатываемым им программам, а не по текстам, которые он пишет. По текстам можно судить о другом.
Вы высказали свое замечание. Можете лполнительно срезать оценку стиля изложения. Но Вы действительно считаете, что здесь уместно обсуждать возможность использование слова "акция" для обозначения TAction? По-моему, такое обсуждение более естественно смотрелось бы, напрмер, вот здесь »тема на БП №383« |
|
06-11-2009 00:52пиктограмма и иконка это синонимы и использование одного из них сразу показывает что вы имели в виду...но акции это неупотребимое выражение в данном контексте...лично я прочитав вашу статью и заметив такое выражение начал судить о вашей некомпетентности в данном вопросе а не о самом вопросе в общем... |
|
05-11-2009 01:37сообщение от автора материала послать учить английский...и немного русский... Уже бегу :)
На счет перевода Actions, Вы конечно правы, но есть еще и общепринятая практика. К примеру, большинство использует термин иконка, а не пиктограмма, хотя лампадок на мониторах я еще не встречал. |
|
05-11-2009 01:19Автора хотелось бы послать учить английский...и немного русский...Actions - это не "акции" а "действие" - обрабочик события...например при нажатии на кнопку у тебя же не появляются акции))) |
|
05-02-2009 15:46сообщение от автора материала непашет((((( Ни чего не понял... можно по-подробнее? Версия, ошибка. |
|
04-02-2009 20:07непашет(((((
ошибка в строке:
ScaleImage(FormBitmap, DestBitmap, DestBitmap.Width / FormBitmap.Width);
Ето наверно для самой древней версии да??? |
|
30-07-2007 05:46сообщение от автора материала Перечитал своё сообщение и сам удивился своему красноречию :o) из-за некоторых ошибок в исходниках ни чего не получилось Я хотел сказать, что стандартные предки моих компонентов в Delphi7 содержат ошибки, из-за которых TGradientActionToolBar, TGradientActionMainMenuBar не работают. Т. е. для установки только полупрозрачной кнопки, надо либо удалить всё лишнее и добавить недостающее в пакет в папке Packages10 (для BDS 2006), либо ставить пакет и папки Packages5 (для Delphi 5). |
|
30-07-2007 01:13сообщение от автора материала Но вот проблема - никак не могу поставить компоненты на 7-ую Делфи Как-то я пытался адаптировать компоненты TGradientActionToolBar, TGradientActionMainMenuBar под Delphi 7, но из-за некоторых ошибок в исходниках ни чего не получилось. Разбираться лениво.
Для установки только TSpeedButtonCep, вам не будет хватать некоторых процедур, их можно найти в Packages5\GraphUtilEx.pas.
Либо скачайте с моего сайта готовую библиотеку для Delphi 7. |
|
28-07-2007 11:57Здравствуйте!
Мне понравилось как выглядят Ваши тестовые програмки. Вообще классно. Темой полупрозрачных кнопок я заинтересовался недавно. Скачал Ваши исходники. Но вот проблема - никак не могу поставить компоненты на 7-ую Делфи. Вроде и делаю все как обычно, но получаю ошибки.
Где-то я недопонимаю наверное до конца процесса. Можно ли описать последовательность действий при установки этих компонентов? |
|
19-07-2007 04:36Большое спасибо Вам за помощь в данном вопросе!!! |
|
22-05-2007 05:32сообщение от автора материала property ColorEx: TColor read fColorEx write SetColorEx default clNone; означает всего лишь то, что если свойство имеет значение clNone, то оно не пишется в файл dfm для уменьшения размера. Это не освобождает от необходимости установки первоначального значения всех свойств (если они отличны от нуля), что и происходит конструкторе, и в методе UpdateColors.
Этот подход позволяет избежать создания сеттера для цвета. Он позволяет только установить все цвета по умолчанию и не более того. Приведенный в примере сеттер предназначен в основном для того, что бы при смене цвета принудительно перерисовать все связяанные с данной палитрой, меню и инструментальные панели. Это не имеет смысла для большинства цветов, например: для цвета выделенного пункта меню, т.к. при выборе нового пункта меню он и так будет полностью перерисован с новым цветом. |
|
22-05-2007 04:14Cepгей Poщин - спасибо Вам! Воспользовался вашим советом и переделал все наново. Как выяснилось - причина была банальной. Вся проблема заключалась в том, что при объявлении нового property в конце надо было указать default (чего я не сделал). После того как к каждому свойству я добавил default значение все заработало и в моем старом варианте.
Честно говоря не думал что это так критично! Вы бы могли пояснить мне этот момент подробнее?
Еще раз спасибо!
ПС: Кстати, я пошел таким же путем как Борланд при реализации TXpColorMap. Этот подход позволяет избежать создания сеттера для цвета. Вместо сеттера достаточно перегрузить UpdateColors.
--
http://delphigeek.blogspot.com |
|
17-05-2007 16:21сообщение от автора материала Проверил. У меня получилось. unit Unit1;
interface
uses
..., ActnMan, ActnColorMaps, ActnMenus, CepStyleActnCtrls, ...;
type
TXPColorMapEx = class (TXPColorMap)
private
fColorEx: TColor;
procedure SetColorEx(const Value: TColor);
public
constructor Create(AOwner: TComponent); override;
published
property ColorEx: TColor read fColorEx write SetColorEx default clNone;
end;
...
TForm1 = class(TForm)
GradientActionToolBar1: TGradientActionToolBar;
GradientActionMainMenuBar1: TGradientActionMainMenuBar;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
public
C: TXPColorMapEx;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
begin
if C = nil then
begin
C := TXPColorMapEx.Create(self);
GradientActionToolBar1.ColorMap := C;
GradientActionMainMenuBar1.ColorMap := C;
end
else
begin
C.ColorEx := ClRed;
end;
end;
...
procedure ColorProc(ActionBar: TCustomActionBar; Colors: TCustomActionBarColorMap);
begin
if Assigned(ActionBar) and (Colors is TXPColorMap) then
begin
if ((ActionBar is TGradientActionToolBar) or
(ActionBar is TGradientActionMainMenuBar)) and
(TXPColorMapEx(Colors).ColorEx <> clNone) then
ActionBar.Color := TXPColorMapEx(Colors).ColorEx
else
ActionBar.Color := Colors.Color;
if ActionBar.HandleAllocated then
ActionBar.Invalidate;
end;
end;
constructor TXPColorMapEx.Create(AOwner: TComponent);
begin
inherited;
fColorEx := clNone;
end;
procedure TXPColorMapEx.SetColorEx(const Value: TColor);
begin
if fColorEx <> Value then
begin
fColorEx := Value;
UpdateActionBars(ColorProc, Value);
if Assigned(OnColorChange) then OnColorChange(Self);
end;
end;
end. Попробуйте еще раз. Если что-то не понятно, оставляйте конкретный вопрос на круглом столе или здесь, а изучать чужие ошибки в чужих программах нет настроения, своих хватает. Успехов. |
|
17-05-2007 11:07Открываем исходники CepStyleActnCtrls. Ищим все места, где встречается слово ColorMap, по аналогии что-то добавляем (делаем свои потомки, или ломаем мои). Смотрим как регистрируется стиль оформления TCepStyleActionBars и также регистрируем свой, если нужно. Аналогично смотрим исходники TXPColorMap и TCustomActionBarColorMap. Большинство свойств у них — это просто поля, всё абсолютно тревиально.
Ну не все так тривиально как вам кажется! Я делал именно то что вы и советуете, но не получается. Проверьте сами. В принципе я написал код, но все равно в нем есть ошибки. Если у вас есть вермя на него взглянуть, то я мог бы его скинуть вам. Просто уж больно хочется расширить набор цветов. |
|
15-05-2007 09:59сообщение от автора материала Открываем исходники CepStyleActnCtrls. Ищим все места, где встречается слово ColorMap, по аналогии что-то добавляем (делаем свои потомки, или ломаем мои). Смотрим как регистрируется стиль оформления TCepStyleActionBars и также регистрируем свой, если нужно. Аналогично смотрим исходники TXPColorMap и TCustomActionBarColorMap. Большинство свойств у них — это просто поля, всё абсолютно тревиально. |
|
13-05-2007 13:26Спасибо. Очень полезный материал. А можно ли расширить используемый в новом стиле набор цветов? Если да, то как? |
|
18-02-2007 00:26не читайте, просто "сынсталируйте" |
|
|
|