お世話になります。
以下のようにしてポップアップメニューアイテムを動的に生成し、
それにイベントを割り当てます。
そして、動的に生成されたポップアップメニューを
クリックして、イベントを実行させます。
そのイベントで選択されたポップアップメニューアイテムを取得し、
必要な処理を実行させます。
ここで問題にあたっているのですが、
動的に生成されたポップアップメニューアイテムを取得する方法が解りません。
その為、各ポップアップメニューアイテムを識別することが出来ず、
困っています。
以下がポップアップを動的生成する部分のコードです。
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
NewItem: TMenuItem;
begin
Application.Title := '解像度変更';
Button1Click(Sender);
i := 0;
while listbox1.Items.Count > i do begin
NewItem := TMenuItem.Create(PopupMenu1);
NewItem.Caption := listbox1.items[i];
NewItem.OnClick := Button6Click;
NewItem.Tag := i;
popupmenu1.Items.Insert(0,NewItem);
i := i + 1;
end;
end;
以下は肝心の動かない部分です
procedure TForm1.Button6Click(Sender: TObject);
var i:integer;
begin
case popupmenu1.ComponentIndex of
//これだとここの値がメニューの合計を出して、
//セレクトしたアイテム番号を取得する方法が解らない
0:i:=0;
1:i:=1;
2:i:=2;
3:i:=3;
4:i:=4;
5:i:=5;
end;
combobox1.Text := combobox1.Items[i];
combobox2.text := combobox2.Items[i];
combobox3.Text := combobox3.Items[i];
combobox4.Text := combobox4.Items[i];
Button2Click(Sender);
end;
(Sender as TComponent).Tag
ですか?
質問の意図からしてこちらかも
if Sender is TMenuItem then (Sender as TMenuItem).MenuIndex
けどさんありがとうございます。
二通りの方法ありがとうございます、
とても勉強なります。
無事動作しました。
それではありがとうございました。
ツイート | ![]() |