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

Вниз

Генерация контекстного меню   Найти похожие ветки 

 
-=GaLaN=- ©   (2003-10-20 17:23) [0]

Расскажите, а лучше киньте в меня ссылкой, где объясняется, как динамически создавать контекстное меню у какого-нибудь компонента, а потом у него (меню) обрабатывать события?


 
Rouse_ ©   (2003-10-20 17:43) [1]

Вот по быстрому накидал

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure MyItemClick(Sender: TObject);
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
MyMenu: TPopupMenu;
TmpItem: TMenuItem;
begin
MyMenu := TPopupMenu.Create(Self);
with MyMenu do
begin
TmpItem := TMenuItem.Create(MyMenu);
TmpItem.Caption := "Close Form";
TmpItem.OnClick := MyItemClick;
Items.Add(TmpItem);
Parent := Form1;
end;
PopupMenu := MyMenu;
end;

procedure TForm1.MyItemClick(Sender: TObject);
begin
Close;
end;

end.


Желаю успехов


 
-=GaLaN=- ©   (2003-10-20 19:09) [2]

Отлично, я создал таким образом меню из 10 пунктов. Сработало событие MyItemClick. Но оно срабатывает на всех пунктах! Как в самом событии определить, а на каком же пункте меню я все-таки щелкнул?


 
mOOx_ ©   (2003-10-20 19:23) [3]

Попробуй сделать так:
procedure TForm1.MyItemClick(Sender: TObject);
begin
if((Sender as TMenuItem).Caption="Item1")then //или текст (не помню)
Close;
end;


 
Rouse_ ©   (2003-10-21 08:57) [4]

Создавай для каждого пункта меню свой MyItemClick если с этим проблема. А если для всех будешь делать один обработчик, тогда по совету mOOx_.

Желаю успехов



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
14-98796
Jek
2003-10-11 10:43
2003.10.30
Вспомним студенчество


1-98732
real_fatboy
2003-10-21 16:58
2003.10.30
Подскажите пож. как новое окошко создать... :)


3-98441
Denisiy
2003-10-10 16:38
2003.10.30
Установка курсора на последнюю строку таблицы (но не TTable.last)


14-98854
Alexey Lipatov
2003-10-13 16:44
2003.10.30
Вход на Форум


3-98477
suharew
2003-10-07 23:01
2003.10.30
Ошибки