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

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

Высота и ширина PopUp`a [D6]


markers ©   (2005-10-20 17:09:00) 

Здраствуйте!
Что-то не могу разобраться, так узнать высоту и ширину попапа? Всё пересмотрел, может плохо смотрел? Подскажите плиз!


markers   (2005-10-21 10:21:00) [1]

Спасибо, вм ребята..... Это всё пригодиться, но до меня только что дошло, что есть путь проще Я юзаю TreeView, и у него есть такое свойство как попап, но у меня попап динамический (В зависимости от пункта) и я подумал, что событие ContextPopup с попапом раздельны (Не связаны)... Но к большому счастью это не там..... Так, что пускай лучше сам маздай всё считает..... Спасибо ещё раз!!! Рецепт пригодиться в любом случае!!!


markers   (2005-10-21 09:58:00) [2]

Хм, чем дальше в лес, тем больше бутерброды.... Ох уж этот масдай со своими заморочками..... Сенкс! Буду рыть...


ShiFT   (2005-10-21 09:56:00) [3]

procedure TForm1.MenuItemClick(Sender: TObject);
var
 r: TRect;
begin
 Memo1.Lines.Clear;
 GetMenuItemRect( Form1.handle, Popupmenu1.handle, 0, r);
 Memo1.Lines.Add( 'Width  = ' + IntToStr( r.Right  - r.Left));  // Width  = 68
 Memo1.Lines.Add( 'Height = ' + IntToStr( r.Bottom - r.Top));   // Height = 17
end;

procedure TForm1.FormCreate(Sender: TObject);
var i : integer;
begin
 Form1.PopupMenu := PopupMenu1;
 for i := 0 to PopupMenu1.Items.Count -1 do
   Popupmenu1.Items[i].OnClick := MenuItemClick;
end;


Loginov Dmitry   (2005-10-21 09:54:00) [4]

Для TMainMemu функция GetMenuItemRect работает как надо, а для TPopupMenu нужно предварительно вызвать метод Popup и выбрать самому к.-л. пункт меню. Вот так.


markers   (2005-10-21 09:46:00) [5]

Кусок:
procedure TMainWindow.Button3Click(Sender: TObject);
var DepHeight:integer;
   R:TRect;
   LB:LongBool;
begin
LB:=GetMenuItemRect( MainWindow.handle, PopupMenu1.handle, 0, R);
ShowMessage(BoolToYesNo(LB)); //Возвращает да
Memo1.Lines.Clear;
Memo1.Lines.Add( 'Width  = ' + IntToStr( r.Right  - r.Left));
Memo1.Lines.Add( 'Height = ' + IntToStr( r.Bottom - r.Top));
end;

Delphi 6 SP2/Win XP SP2


markers   (2005-10-21 09:46:00) [6]

Кусок:
procedure TMainWindow.Button3Click(Sender: TObject);
var DepHeight:integer;
   R:TRect;
   LB:LongBool;
begin
LB:=GetMenuItemRect( MainWindow.handle, PopupMenu1.handle, 0, R);
ShowMessage(BoolToYesNo(LB)); //Возвращает да
Memo1.Lines.Clear;
Memo1.Lines.Add( 'Width  = ' + IntToStr( r.Right  - r.Left));
Memo1.Lines.Add( 'Height = ' + IntToStr( r.Bottom - r.Top));
end;

Delphi 6 SP2/Win XP SP2


markers   (2005-10-21 09:43:00) [7]

Сделал даже на клик кнопки другго нового попапа, всё-равно 0/0
Это уже становиться интересным:) В чём может быть проблема?
За пример спасибо!


markers   (2005-10-21 09:40:00) [8]

Ща попробую левую менюху сделать


markers   (2005-10-21 09:38:00) [9]

Width  = 0
Height = 0
????????????????????


ShiFT   (2005-10-21 09:33:00) [10]

var
 r: TRect;
begin
  GetMenuItemRect( Form1.handle, Popupmenu1.handle, 0, r);
 Memo1.Lines.Clear;
 Memo1.Lines.Add( 'Width  = ' + IntToStr( r.Right  - r.Left));
 Memo1.Lines.Add( 'Height = ' + IntToStr( r.Bottom - r.Top));
end;


markers   (2005-10-21 09:01:00) [11]

Как ни пытаюсь, даёт противоречивые результаты, то в одной последовательности 0, то в другой последовательности очень большую цифру, подскажите плиз, (Почитал на мсдне)
Понял примерно так:
GetMenuItemRect(0,(Необходимо указать хендл менюхи, указываю большое число, аказываю хендл наследника итема даёт 0),0,Rec);
В чём я не прав?
Подскажите плиз?
Просто маленький пример!


markers   (2005-10-20 18:20:00) [12]

Что-то маленько не могу разобраться с параметрами команды GetMenuItemRect, а хелпа нет... То, что сделал выдаёт черезчёр огромные цифры, подскажите плиз


markers   (2005-10-20 17:19:00) [13]

Да PopUpMenu! Спасибо! Ща попробую!


clickmaker   (2005-10-20 17:16:00) [14]

"попап" - это PopupMenu?
GetMenuItemRect * Count


Наверх

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