掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
MDIアプリでの画面表示について (ID:44498)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
検証してたらMr.XRAYさんとかぶってた、、、。 以下、かなり似かよった話ですが、役に立つかなー? --------------------- 解決法は分かりません…。MDIも初めて使いました…のですが、何か参考になれば。 最小プロジェクトを作り、コピー&ペーストでそのまま動かせるコードにした方がテストする人が増えるかと。 CreateMDIChild手続き中のCreate、AOwner、pCharが???だったので、下記のコードでは適当に合わせました…。 それで検証してみると、メニューからもアクション直接Executeでも、うまくタイル状に並びました。 (Delphi6 Personal、WindowsXP) あと、親MDIフォームから子MDIフォームへアクセスは、MDIChildrenとか配列、リストなどで出来るのでは。 Unit1 ------------------------------------------------------------------------ type TForm1 = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem; ActionList1: TActionList; WindowTileVertical1: TWindowTileVertical; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private 宣言 } public { Public 宣言 } end; var Form1: TForm1; implementation uses Unit2; {$R *.dfm} procedure CreateMDIChild(image:string); var Child: TMDIChild; begin Child:=TMDIChild.Create(Form1); Child.Image1.Picture.LoadFromFile(image); end; procedure TForm1.Button1Click(Sender: TObject); var Dir: String; begin Dir:=ExtractFilePath(Application.ExeName); CreateMDIChild(Dir+'Test1.jpg'); CreateMDIChild(Dir+'Test2.jpg'); CreateMDIChild(Dir+'Test3.jpg'); if MDIChildCount > 0 then WindowTileVertical1.Execute; // 常に機能した //N1.Click; //OnShowでのみ機能せず end; procedure TForm1.Button2Click(Sender: TObject); var I: Integer; begin for I:=0 to Self.MDIChildCount-1 do begin (Self.MDIChildren[I] as TMDIChild).halfshow(); end; end; Unit2 ------------------------------------------------------------------------ type TMDIChild = class(TForm) Image1: TImage; private { Private 宣言 } public { Public 宣言 } procedure halfshow(); end; var MDIChild: TMDIChild; implementation {$R *.dfm} const Base_Height=100; Base_Width=100; procedure TMDIChild.halfshow(); begin Image1.SetBounds(0,0, Round(Base_Width * 0.5), Round(Base_Height * 0.5)); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.