|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.01.2009, 08:27 | #1 |
Пользователь
Регистрация: 27.12.2008
Сообщений: 88
|
Смена скина AlphaControls
Здравствуйте. В моей программе присутствуют 2 скина.
Какой код нужно писать, чтобы пользователь смог менять скины в программе? Я написал вот так: Код:
Некоторые части окна. Почему то не скинятся... а остается просто белая полоса... Я вообще правильно пытаюсь изменить скин? Да кстати.. (SelectSkins - это у меня ComboBox) Получается если в ней выбран пункт.. то есть (Индекс - 1) это получается выбран второй скин... то есть допустим Office... Тогда скин программы меняется на Office... Подскажите где я спатыкаюсь? |
13.01.2009, 08:42 | #2 |
Участник клуба
Регистрация: 09.11.2007
Сообщений: 1,762
|
Скобочки там ставить не надо
Просто Form1.sSkinManager1.SkinName:='Offi ce 2007 Blue'; |
13.01.2009, 08:59 | #3 |
Пользователь
Регистрация: 28.01.2008
Сообщений: 66
|
Scren, эта проблема идет с модальными окнами на сколько я знаю!
После применения скина необходима перерисовка... Или используй MDIChild форму...
Была бы цель - и всё получится!
|
13.01.2009, 09:56 | #4 |
Пользователь
Регистрация: 27.12.2008
Сообщений: 88
|
Спасибо ребята. Значит делаю правильно.. А вот на счет перерисовки.. Это получается нужно добавлять.. ( Form1.sSkinManager1.UpdateSkin ) ?.. А только что дальше писать?
Если так то..получается ( Form1.sSkinManager1.UpdateSkin; ) Только вот где это нужно прописывать? Случайно не в (procedure TForm1.sSkinManager1AfterChange(Sen der: TObject) ? Если да то пробывал.. не помогло... так же белые полосы.. Да и еще.. скины у меня встроенные... то есть не внешние.. И почему то когда происходит смена скина.. окно с настройками мигает 3 раза... Хм.. Код:
А с прорисовкой скина помогите... UpdateSkin не помогает... или я пишу его не туда Последний раз редактировалось Stilet; 28.01.2010 в 16:12. |
13.01.2009, 11:06 | #5 |
Пользователь
Регистрация: 28.01.2008
Сообщений: 66
|
UpdateSkin не причем! Я говорил про прорисовку окна, а не об обновлении скина... Я лично использовал форму MDIChild, и менял скины сразу по щелчку в ListBox со скинами... Работает как часы, никаких мерцаний, идет плавная смена скина!
С модальной формой была такая же проблема, у меня ее вообще не было видно, делал процедуру перерисовки всех копмонентов и самой формы, да, все компоненты отображались нормально, только вот сам заголовок окна не перерисововался! Вот это и лажа! Думаю лучше будет, если сделаешь кнопку "Применить" по нажатию которой будет сначала закрываться окно ConfigForm, а после применяться скин... Попробуй так: Код:
Была бы цель - и всё получится!
|
13.01.2009, 11:21 | #6 |
Пользователь
Регистрация: 27.12.2008
Сообщений: 88
|
Блин ниче не могу понять... Прописал код на кнопку применить...
Опять же скин на Office меняется .. блин а на Vista нет... почему так? А с мерцаниями и плохой прорисовкой...я не знаю что делать... это получается мне нужно само окно с настройками FormStyle нужно ставить в MDIChild ? И все будет нормально? Но если я поставлю его в MDIChild.. тогда у меня перестанет работать программа... будет ошибка... Мне придется же поменять все участки кода с которыми связана форма ConfigForm Получается AlphaControls фигня по сравнению с BusinessSkinsForm Мда..поменял FormStyle на MDIChild.. теперь ошибка .. а кода много..очень много... че теперь мне где менять? Блин и теперь обратно на Normal востановить не могу.... все равно ошибка... че делать? Ппц.. я в панике.. Что делать? На Normal вернул.. все равно ошибка.. Последний раз редактировалось Stilet; 28.01.2010 в 16:13. |
13.01.2009, 12:08 | #7 |
Пользователь
Регистрация: 28.01.2008
Сообщений: 66
|
Scren,почему не можете восстановить в Normal? Нет, я не говорю что нужно теперь все переделывать в MDI окнах... А для того чтобы окно работало в стиле fsMDIChild необходимо главной форме установить стиль fsMDIForm...
Что у вас за мерцания? У меня лично никаких мерцаний нет и не было! Может железо слабенькое? Да и, на Vista у вас не меняется из-за ошибки в определении выбранного скина: нумерация в ComboBox идет с нуля... т.е сделайте проверку если ItemIndex=0 то Vista, если 1 - то Office... У вас отдельная форма только для выбора скина или здесь же другие какие-то настройки? Код, что я писал выше прекрасно работает, по нажатию кнопки "Применить" форма закрывается и сразу же применяется скин! У вас наверное есть форма с настройками из которой которой вызывается еще одна для выбора скина, так? В общем, после применения скина закрывайте все открытые окна... Или сделайте применение скина только после перезагрузки программы. Т.е. пользователь выбрал скин, вы сохраняете его в файле, предупреждаете пользователя что изменения вступят в силу только после перезапуска программы. При загрузке программы считываете сохраненный скин и применяете его до показа формы! Все! Программа откроется уже в новом виде! )
Была бы цель - и всё получится!
|
13.01.2009, 14:00 | #8 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Цитата:
Вот так пробывали? Загрузить названия скинов в список, при создании формы: sSkinManager1.GetSkinNames(CBox1.It ems); Нажатие на кнопку "Применить": sSkinManager1.SkinName := CBox1.Items.Strings[CBox1.ItemIndex]; |
|
13.01.2009, 14:26 | #9 |
Пользователь
Регистрация: 27.12.2008
Сообщений: 88
|
Да то что нумерация идет с нуля, это я знаю.. Но не так не так не работает.. даже если поставить 0 вместо 1... я просто проверял..и поэтому забыл поменять 1 на 0.. но все равно не работает... окно с настройками у меня одно.. больше никаких окон нету... только главное окно и окно с настройками.. все...в нем есть ComboBox...в нем я выбираю скин... после нажатия на кнопку применить.. форма с настройками пропадает..и сразу же 1 раз мерцнет и снова пропадает... все... потом когда я захожу в форму с настройками.. там белые полосы вместо скина....а сама главная форма... отображается нормально...
Сейчас вообще не могу заставить программу работать... поменял на форме с настройками FormStyle в MDIChild...после этого программа перестала запускатся..выдает ошибку... я перезапустился...и поменял снова на fsNormal... после этого программа запускается.. но когда пытаешься зайти в настройки.. при открытии окна с настройками... вылезает та же ошибка...и программа перестает работать... как теперь востановить стабильность программы? И ругается именно на открытие формы с настройками.. именно на Form1.ShowModal... Подсвечивает эту строку синем цветом Как вернуть та все. Щас если я установлю главной форме стиль fsMDIForm то будет еще хуже... ошибок будет больше... мне это не надо... Я уже один раз так пробывал... потом разгребал 2 дня..что же происходит..почему же не запускается программа... Тоже самое что и сейчас с формой настроек... не открывается она... и все из-за того что 1 раз поменял стиль на MDIChild... И теперь хоть в че его ставь... при открытии ошибка.. Последний раз редактировалось Stilet; 28.01.2010 в 16:15. |
13.01.2009, 16:22 | #10 |
C++ & PHP & Asm
Форумчанин
Регистрация: 06.12.2008
Сообщений: 300
|
Вот лови пример, все нормально работает.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Установка AlphaControls | spamer | Компоненты Delphi | 22 | 09.06.2012 13:37 |
Установка AlphaControls | Gromsky | Компоненты Delphi | 38 | 11.01.2012 12:55 |
Глюк из-за скина | Altera | Свободное общение | 5 | 11.05.2008 07:01 |
Установка AlphaControls v5.31 | athlant64 | Компоненты Delphi | 4 | 08.03.2008 12:08 |
Насчёт скина | JoanM | Win Api | 5 | 16.04.2007 16:45 |