MDI形式のプログラムを作成しています。
起動すると画面中央には何も表示されなくて
メニューバーの項目のみです。
今は、メニューバーを選択してリストの中から
項目を選択して画面を起動しています。(画面がさびしいかな)
それをプログラム起動後に
メニューバーの項目を画面にボタンを配置して
メニューを作成したいです。
このようなことができるのでしょうか?
よろしくお願いいたします。
>起動すると画面中央には何も表示されなくて
>メニューバーの項目のみです。
ひろみさんが、作成したアプリのコト?
>今は、メニューバーを選択してリストの中から
>項目を選択して画面を起動しています。(画面がさびしいかな)
MDIの子をメニューから選択して表示しているってコト?
。。。もう少し、分かりやすく書いていただけませんか。
そのほうが、レスが付きやすいですよ。
すみません。説明不足で..
>起動すると画面中央には何も表示されなくて
>メニューバーの項目のみです。
そうです。私が作成したアプリです。
>今は、メニューバーを選択してリストの中から
>項目を選択して画面を起動しています。(画面がさびしいかな)
MDIの子をメニューから選択して表示していることです。
分かりますでしょうか?
>それをプログラム起動後に
>メニューバーの項目を画面にボタンを配置して
>メニューを作成したいです。
var
MyButton: array of array of TButton;
procedure TMainForm.FormShow(Sender: TObject);
var
x, y: Integer;
begin
for x:=0 to MainMenu1.Items.Count-1 do begin
SetLength(MyButton, x+1);
for y:=0 to MainMenu1.Items[x].Count-1 do begin
if MainMenu1.Items[x].Items[y].Caption = '-' then Continue;
SetLength(MyButton[x], y+1+1);
MyButton[x, y+1] := TButton.Create(Self);
with MyButton[x, y+1] do begin
Parent := MainForm;
Width := 150;
Height := 25;
Top := y * (Height+4) + 90;
Left := x * (Width+4) + 50;
OnClick := MainMenu1.Items[x].Items[y].OnClick;
Caption := MainMenu1.Items[x].Items[y].Caption;
Enabled := MainMenu1.Items[x].Items[y].Enabled;
OnMouseUp := MyButtonOnMouseUp;
end;
end;
end;
for x:=0 to MainMenu1.Items.Count-1 do begin
MyButton[x, 0] := TButton.Create(Self);
with MyButton[x, 0] do begin
Parent := MainForm;
Width := 150;
Height := 25;
Top := 50;
Left := x * (Width+4) + 50;
Caption := MainMenu1.Items.Items[x].Caption;
end;
end;
MyButton[0, 1].SetFocus;
end;
procedure TMainForm.MyButtonOnMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
a, b: Integer;
begin
for a:=0 to MainMenu1.Items.Count-1 do begin
for b:=0 to MainMenu1.Items[a].Count-1+1 do begin
MyButton[a,b].Free;
end;
end;
end;
ありがとうございます。
このようにも出来るんですね!
よく市販のアプリで初心者用にあるような??
メニューバーが分からない人のためにあるメニュー画面なんです。
メニューバーに”メニュー画面表示”を作成し
それをクリックしたらメニューが表示するように
しようかな...
ツイート | ![]() |