くだすれDelphi(超初心者向け) Part3
■ このスレッドは過去ログ倉庫に格納されています
0689ななしへたぐらま ◆XcB18Bks.Y
NGNG直接の原因はおそらくまだ子フォームAが作られていないうちにAを操作しようとしたからです.
おそらくメインフォームのOnCreateイベントハンドラからこの手続きを呼び出されたのだと思います.
(Delphiでは最初に自動生成されるフォーム=メインフォームです.プロジェクトソースを見ると一目瞭然)
子フォームの自動生成をやめてOnShowイベントハンドラから呼び出すようにすればこの例外は発生しませんが,
この場合はAが存在しません.またこの手続きの処理対象が常にAなので2つ目以降のフォームではうまくいきません.
(2つ目以降の子フォームはAではない)
この対策は2つ考えられます.
i) 引数で子フォームの実体を指定する
procedure Clr_Image(ChildForm: TMDI_A; WakuColor,NaibuColor ・・・);
with ChildForm.Image1.Canvas do // (←)
(以下略)
ii) この手続きを子フォームの公開された(public)メソッドにする
procedure Clr_Image(WakuColor,NaibuColor ・・・);
with Image1.Canvas do // (←)
(以下略)
■ このスレッドは過去ログ倉庫に格納されています