Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мой вариант управления размером тулбара :) [Win95/98]


eSKey ©   (2002-05-16 10:50:00) 

Не все же вопросы писать, надо и ответы иногда ;) Если помните, я спрашивал как правильно подогнать размер тулбара, не получалось через Width & Heigth. Оказалось, что на тестовых компах стоит не только высокое разрешение, но и крупных шрифт в настройках экрана. Соответственно рабочий код (проверен сейчас):

//Images - ImageList кнопок Toolbar"a
//ViewR - Toolbutton с самым длинным кэпшн, при Autosize все кнопки будут одинаковы по ширине
procedure TMainForm.FormCreate(Sender: TObject);
yCaption:=getsystemmetrics(SM_CYCAPTION);
yFrame:= getsystemmetrics(SM_CYFRAME);
yFrame:=yFrame*2;
Xfactor:=Images.Height+MyToolBar.Canvas.TextHeight(ViewR.Caption);
TBXSize:=MyToolBar.Canvas.TextWidth(ViewR.Caption)+getsystemmetrics(SM_CXFRAME)*2;
minYsize:=Xfactor+yFrame;
minYsize:=yFrame+yCaption+minYsize;
minXsize:=MyToolBar.ButtonCount*TBXSize;

Возможно такой код выглядит не слишком красиво и очевидно, однако размеры получаются абсолютно те, что нужно (могу выложить скриншот).

Вопрос по ходу: как программно определить системные настройки масштабирования шрифта (Дисплей::Свойства::Настройка::[Дополнительно])?

ЗЫ: Спасибо за вчерашний совет по тредам! Надо было мне выложить весь текст конструктора, там был еще один баг с недосыпа :) - CopyFrom в несозданный стрим (запутала фраза из хелпа - Using CopyFrom eliminates the need for the user to create, read into, write from, and free a buffer when copying data.).


Игорь Шевченко   (2002-05-16 11:09:00) [1]


> Вопрос по ходу: как программно определить системные настройки
> масштабирования шрифта (Дисплей::Свойства::Настройка::[Дополнительно])?


В Delphi - Screen.PixelsPerInch
Через API, соответсвенно,
GetDeviceCaps(DC, LOGPIXELSY);


Наверх

Титульная страница Поиск, карта сайта Написать письмо