Посчитать ширину MainMenu

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Посчитать ширину MainMenu

Сообщение GAMER » 15.01.2011 14:15:04

Можно как-то посчитать ширину MainMenu?
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Посчитать ширину MainMenu

Сообщение Nik » 15.01.2011 17:58:35

В теории, ширина MainMenu равна ClientWidht формы (минус пара пикселей).

Или нужно узнать суммарную ширину пунктов меню?
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Посчитать ширину MainMenu

Сообщение GAMER » 15.01.2011 18:26:59

Суммарную ширину.

Объясню зачем. Возможно есть другой метод.
При разных настройках экрана, бывает ситуация, что меню располагается в два ряда (не помещается все в одном). Вот хотелось бы рассчитать ширину главной формы, чтобы меню помешалось в одну строку или уж если ширина главной формы будет больше ширины экрана, то тогда уже пусть будет в 2 строки.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина

Re: Посчитать ширину MainMenu

Сообщение Nik » 15.01.2011 19:04:17

Хм... Единственное, что приходит в голову - можно посчитать суммарную ширину всех названий пунктов меню и добавить на глазок ширину отступов.

Что-то типа:

Код: Выделить всё
const
correct = 6;
var
wdh: integer;
...
wdh:=0;

for i:=0 to MainMenu1.Items.Count-1 do
begin
  wdh:=wdh+Canvas.GetTextWidth(MainMenu1.Items[0].Caption)+correct;
end;

// на выходе wdh будет содержать примерную ширину меню
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Посчитать ширину MainMenu

Сообщение GAMER » 15.01.2011 19:17:10

Спасибо, у меня тоже была такая идея, но думал, что есть варианты попроще.
Аватара пользователя
GAMER
энтузиаст
 
Сообщения: 627
Зарегистрирован: 06.08.2008 13:41:07
Откуда: Ужгород-Днепр, Украина


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 22

Рейтинг@Mail.ru