Главная страница
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.044 c
14-1130034733
Form1.Canvas..........
2005-10-23 06:32
2005.11.13
Лицензионные проги


14-1130153309
pazitron_brain
2005-10-24 15:28
2005.11.13
Что такое свет?


4-1126174606
jeka_t
2005-09-08 14:16
2005.11.13
Есть ли функция, которая возвращает "Описание" в "Имени компьютер


4-1125846248
Sormy
2005-09-04 19:04
2005.11.13
RSA decrypting


14-1129729150
lightix
2005-10-19 17:39
2005.11.13
QuickReport у не нравится лазерный принтер samsung