Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как привязать Popup menu к StringGrid 
:(
    Опции темы
Sixkiller
Дата 18.8.2003, 01:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Необходимо, чтобы Popup Menu можно было вызывать только у одного определенного столбца в StringGrid, причем после выбора пункта меню должны передаваться данные той форме, которая будет вызываться - значение ячейки той же строки в StringGrid, но другого столбца. Как это сделать, подскажите, кто может. Определенного ответа я пока не нашел. Заранее благодарен.
  Вверх
p0s0l
Дата 18.8.2003, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Г-н Посол
****


Профиль
Группа: Экс. модератор
Сообщений: 3668
Регистрация: 13.7.2003
Где: 58°38' с.ш. 4 9°41' в.д.

Репутация: 58
Всего: 112



Можно сделать через OnContextPopup:

Код
var
 ContextRow : integer; // глобальная переменная - № ряда, в котором нажали правую кнопку

procedure TForm1.StringGrid1ContextPopup(Sender: TObject; MousePos: TPoint;
 var Handled: Boolean);
var
 col : integer;
begin
 StringGrid1.MouseToCell(MousePos.X, MousePos.y, col, ContextRow);
 Handled := col <> 2;
end;

procedure TForm1.MenuItem1Click(Sender: TObject); // OnClick одного из элементов Popup-меню
begin
 MyForm.MyProcedure (StringGrid1.Cells[3, ContextRow]);
end;




--------------------
С уважением, г-н Посол.
PM   Вверх
Barmaley
Дата 18.8.2003, 04:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 12.8.2003

Репутация: нет
Всего: нет



Можно сделать и через MouseDown:
В свойстве PopupMenu грида указываешь соответствующую PopupMenu и:
Код

procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var CurrentCol, CurrentRow: integer;
begin
 TStringGrid(Sender).MouseToCell(X, Y, CurrentCol, CurrentRow);
 TStringGrid(Sender).PopupMenu.AutoPopup:=False;
 If Button = mbRight
 Then TStringGrid(Sender).PopupMenu.AutoPopup:=True;
 End;
end;



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.