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

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

Как правильно вывести PopupMenu


KIR ©   (2002-09-12 11:46:00) 

Вот есть процедура:

procedure TVvodGrid.StringGrid1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Col,Row: Integer;
P: TPoint;
begin
If Button = mbRight then
begin
StringGrid1.MouseToCell(X,Y,Col,Row);
If Col < 2 then
begin
P := ClientToScreen(Point(X,Y));
PopupMenu1.Popup(P.X,P.Y);
end;
end;
end;

Почему-то меню выскакивает на две строки выше, зато по Y все нормально.
Может поможет: на форме кроме StringGrid"a есть еще две панели, у одной Alignmeny = alTop, у второй - alButtom, у StringGrid"a - соответственно - alClient


KIR   (2002-09-12 12:25:00) [1]

>> Старый Паскалист - спас!


Старый Паскалист   (2002-09-12 11:53:00) [2]

StringGrid1.ClientToScreen(...)


Song   (2002-09-12 11:52:00) [3]

Не надо ClientToScreen().
X и Y у Вас относительно TStringGrid


Наверх

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