Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
ВнизГенерация контекстного меню Найти похожие ветки
← →
-=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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.009 c