掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ダイアログBox等が表示される直前を察知するには? (ID:13545)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> また、この方法は私が先ほど書いた現在の対処方法にくらべてより簡素な書き方になりますか? たかみちえさんがレスしていますが,動作仕様を満たすためには,コードが 長くなったり,またまだ自分が知らないことを取り入りたりすることも必要 でしょう.そうして,コーディングの知識を増やしていくわけです. ところで,どうも勘違いしてたようです.TOpenDialogの方と... これは目的の仕様に沿うかどうかはわかりませんが, もし,必ずOpenDialogを使うのであれば,その自作のPaintBoxにダイアログ を組込んでしまう手もあります.例えばこんなコンポーネントです. unit MyPaintBox; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls; type TMyPaintBox = class(TPaintBox) private { Private 宣言 } FOpenDialog : TOpenDialog; FReadDir : String; procedure MyOpenDialogOnShow(Sender: TObject); protected { Protected 宣言 } public { Public 宣言 } constructor Create(AOwner: TComponent);override; destructor Destroy; override; property OpenDilalog : TOpenDialog read FOpenDialog; published { Published 宣言 } property ReadDir : String read FReadDir write FReadDir; end; procedure Register; implementation procedure Register; begin RegisterComponents('plXRAY', [TMyPaintBox]); end; { TMyPaintBox } constructor TMyPaintBox.Create(AOwner: TComponent); begin inherited Create(AOwner); FOpenDialog:=TOpenDialog.Create(Self); FOpenDialog.OnShow:=MyOpenDialogOnShow; FReadDir := 'C:\'; FOpenDialog.InitialDir:=ReadDir; end; destructor TMyPaintBox.Destroy; begin FOpenDialog.Free; inherited; end; procedure TMyPaintBox.MyOpenDialogOnShow(Sender: TObject); begin ShowMessage('BBB'); end; end. 説明は省略します.使い方は, procedure TForm1.Button1Click(Sender: TObject); begin if MyPaintBox1.OpenDilalog.Execute then begin end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.