Главная страница
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.015 c
1-98652
Ivolg
2003-10-17 12:18
2003.10.30
Алгоритм!


9-98421
TWINk
2003-03-13 23:03
2003.10.30
DXF


3-98437
stud
2003-10-10 15:46
2003.10.30
гляньте, что тут не так?


1-98715
Ormada
2003-10-17 12:23
2003.10.30
Редактор для Delphi


3-98440
TASADAR
2003-10-08 12:39
2003.10.30
как программно менять udl файл