joparoobit
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Victor_Dobrov Цитата: Не считаю проблемой, (но исправлю) ведь в скине и так используются довольно крупные шрифты, их можно уменьшить в Example.iss, указав свои в секции [LangOptions] | Речь идет о крупных шрифтах в Windows (для ХР - правый клик на Desktop, в popup выбрать пункт "Свойства", появится окно "Свойства: Экран", закладка "Параметры", кпонка "Дополнительно", закладка "Общие") 120 dpi против стандартных 96 dpi. Привык работать в крупных шрифтах и классической теме. Так что приходится просматривать варианты отображения прог в других темах, шрифтах и даже на двух мониторах Delphi на автомате меняет размеры элементов при изменении шрифтов. htuos Цитата: ну, в короне для этих целей определен метод OnActivate у фоновой формы (точно не помню) думаю, что и по другому можно решить эту проблему | Проблема в том, что если окно не модальное, то возможно активировать то окно что под ним, а это в свою очередь означает перерисовки(мерцание), возможность свернуть и пр. Изначально несколько лет кряду пользовался Wise InstallMaster седьмой версии и был доволен. Но вот захотелось принарядить прогу И хотелось бы создать полную копию по функционалу, но более нарядную по сравнению с тем, что имею. Наверное, без MainForm (background window) можно обойтись. Даже создатели Inno указывают, что сие окно есть атавизм. Кстати, по поводу checkboxes, рекомендую глянуть unit Themes; - там показано как прорисовывать элементы согласно теме. Я, например, переопредилил метод Paint у TSpeedButton так, что в качестве рисунка выводится крестик как у окон (для закрытия локальных панелек). Что-то типа этого: // twCloseButtonNormal, twCloseButtonHot, twCloseButtonPushed, twCloseButtonDisabled, if ThemeServices.ThemesEnabled then begin if MouseInControl then ButtonState:=twSmallCloseButtonHot else if FFocused then ButtonState:=twSmallCloseButtonNormal else ButtonState:=twSmallCloseButtonDisabled; if not Enabled then begin FState:=bsDisabled; ButtonState:=twSmallCloseButtonDisabled; end else if FState=bsDisabled then if Down and (GroupIndex <> 0) then FState:=bsExclusive else FState:=bsUp; if FState in [bsDown, bsExclusive] then ButtonState:=twSmallCloseButtonPushed; PaintRect:=ClientRect; ThemeServices.DrawElement(Canvas.Handle, ThemeServices.GetElementDetails(ButtonState), PaintRect,PaintRect); end | Всего записей: 52 | Зарегистр. 29-04-2009 | Отправлено: 15:21 30-04-2009 | Исправлено: joparoobit, 15:53 30-04-2009 |
|