Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Высота и ширина PopUp`a   Найти похожие ветки 

 
markers ©   (2005-10-20 17:09) [0]

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


 
clickmaker ©   (2005-10-20 17:16) [1]

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


 
markers ©   (2005-10-20 17:19) [2]

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


 
markers ©   (2005-10-20 18:20) [3]

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


 
markers ©   (2005-10-21 09:01) [4]

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


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

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:38) [6]

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


 
markers ©   (2005-10-21 09:40) [7]

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


 
markers ©   (2005-10-21 09:43) [8]

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


 
markers ©   (2005-10-21 09:46) [9]

Кусок:
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) [10]

Кусок:
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


 
Loginov Dmitry ©   (2005-10-21 09:54) [11]

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


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

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;


 
markers ©   (2005-10-21 09:58) [13]

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


 
markers ©   (2005-10-21 10:21) [14]

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



Страницы: 1 вся ветка

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.063 c
14-1130095694
Vaitek
2005-10-23 23:28
2005.11.13
Норд-Ост


8-1119478025
Strech
2005-06-23 02:07
2005.11.13
масштабирование изображений


3-1128152089
FH
2005-10-01 11:34
2005.11.13
Возврат значения поля Identity


14-1129720995
Digitman
2005-10-19 15:23
2005.11.13
doc/xls/rtf <-> xml/xsl


2-1130124489
Vitaliy
2005-10-24 07:28
2005.11.13
Наследование классов