掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
動的に作成したImageを削除するには (ID:21217)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
動的に作成したコンポは自分のイベントハンドラのなかで Free するとエラーになります。 PostMessage() をつかって遅延するとうまくいきます。 { Private 宣言 } public procedure ImageClick(Sender: TObject); procedure WMApp100(var msg: TMessage); message WM_APP + 100; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var img: TImage; begin img := TImage.Create(self); with img do begin Parent := self; Height := 30; Width := 30; Top := 2; Left := 10; OnClick := ImageClick; Canvas.Brush.Color := clWhite; Canvas.Font.Style :=[fsBold]; Canvas.TextOut(10, 10, '画'); end; end; procedure TForm1.ImageClick(Sender: TObject); begin PostMessage(Handle, WM_APP+100, WParam(Sender), 0); end; procedure TForm1.WMApp100(var msg: TMessage); var obj: TObject; begin obj := TObject(msg.WParam); if obj is TImage then obj.Free; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.