Главная страница
    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.48 MB
Время: 0.032 c
1-1130164870
Griffon
2005-10-24 18:41
2005.11.13
Сумма строк в StringGrid


4-1126609187
Cherrex
2005-09-13 14:59
2005.11.13
Как использовать GetUserName


4-1126187893
ANB
2005-09-08 17:58
2005.11.13
При каких условиях отрабатывает WaitFoInputIdle ?


1-1129883653
HF-Trade
2005-10-21 12:34
2005.11.13
Как отключить Таб ордер....


8-1119575270
Dr. Andrew
2005-06-24 05:07
2005.11.13
Как можно проверить занят ли аудио файл другим процессом?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский