業務開始メニューを動的につくりたい。


ゆん  2007-12-26 02:18:37  No: 29103

お世話になります。
動的にデータからメーニューを作りたいと思っています。
下の絵のような感じです。

LEVEL1から表示してClickかなんらかの方法でLVEL2を表示する。
イメージ的にはスタートメニューの「すべてのプログラム」
のような動きにしたいのですが、

いろいろ調べたのですが良い方法が見つかりません。
LEVEL1とかのMAX件数を決めて個別に書くしかないのでしょうか。

ちなみに今はPanelを列挙して固定でLEVEL1を作成してみました。
アドバイスをお願いします。

LEVEL1               LEVEL2                  LEVEL3
-----------
販売メニュー    
-----------          -------------           ------------- 
経理メニュー  --->   日次メニュー     --->   仕訳入力
-----------          -------------           ------------- 
給与メニュー         月次メニュー            仕訳入力チェック表
-----------          -------------           -------------


Ru  2007-12-26 02:50:42  No: 29104

コンポーネントでいうなら
・TTreeView
・TPopupMenu
・VirtualTreeView(http://www.delphi-gems.com/index.php?option=com_content&task=view&id=12&Itemid=38)※難しくて私は挫折・・・
・etc.

スタートボタンのイメージならばTPopupMenuがいいんですかねぇ。
procedure TForm1.Button1Click(Sender: TObject);
begin
  PopupMenu1.Popup(TButton(Sender).ClientOrigin.X + TButton(Sender).Width,
                   TButton(Sender).ClientOrigin.Y);
end;
※表示位置は調整してください。
動的追加はAddメソッドで出来ると思います。


KHE00221  2007-12-26 04:04:46  No: 29105

Menuの動的追加ならこんな感じなんだけど・・・

var
    Menu1,Menu2,Menu3 : TMenuItem;
begin
    Menu1 := TMenuItem.Create(Self);
    Menu1.Caption := '販売メニュー(&H)';
    Menu1.OnClick := Button2Click;
    PopupMenu1.Items.Add(Menu1);

    Menu1 := TMenuItem.Create(Self);
    Menu1.Caption := '経理メニュー(&K)';
    //Menu1.OnClick := Button2Click;
    PopupMenu1.Items.Add(Menu1);

    Menu2 := TMenuItem.Create(Self);
    Menu2.Caption := '日時メニュー(&D)';
    //Menu2.OnClick := Button2Click;
    Menu1.Add(Menu2);

    Menu3 := TMenuItem.Create(Self);
    Menu3.Caption := '仕分け入力(&I)';
    Menu3.OnClick := Button2Click;
    Menu2.Add(Menu3);

    Menu3 := TMenuItem.Create(Self);
    Menu3.Caption := '仕分け入力チェック表(&C)';
    Menu3.OnClick := Button2Click;
    Menu2.Add(Menu3);

    Menu2 := TMenuItem.Create(Self);
    Menu2.Caption := '月次メニュー(&M)';
    Menu2.OnClick := Button2Click;
    Menu1.Add(Menu2);

    Menu1 := TMenuItem.Create(Self);
    Menu1.Caption := '給与メニュー(&K)';
    Menu1.OnClick := Button2Click;
    PopupMenu1.Items.Add(Menu1);


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加