掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
コンポーネント配列にしたclientsocketのイベントを使うには? (ID:13297)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Button1Click でラベルのインスタンスをつくり、そのラベルのクリックで 削除できるようにしました。参考にしてください。 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private 宣言 } public LabelList:TList; CountHistory:integer; procedure LblClick(Sender: TObject); procedure WMApp(var Msg:TMessage);message WM_APP; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin LabelList := TList.Create; CountHistory := 0; end; procedure TForm1.FormDestroy(Sender: TObject); begin LabelList.Free; end; procedure TForm1.Button1Click(Sender: TObject); var Lbl:TLabel; begin Lbl := TLabel.Create(self); LabelList.Add(Lbl); Lbl.Parent := self; Lbl.Left := 150*(CountHistory mod 4) + 10; Lbl.Top := 50*(CountHistory div 4)+ 10; Lbl.Color := clYellow; Lbl.Caption := 'Label '+IntToStr(CountHistory); Lbl.Tag := CountHistory; Lbl.OnClick := LblClick; Inc(CountHistory); end; procedure TForm1.LblClick(Sender: TObject); var Lbl:TLabel; index:integer; begin Lbl := TLabel(Sender); Lbl.Color := clLime; Lbl.Caption := 'This is '+IntToStr(Lbl.Tag); if MessageDlg('このラベルを削除しますか?',mtInformation, [mbYes,mbNo],0) = mrYes then begin index := LabelList.IndexOf(pointer(Lbl)); PostMessage(Handle,WM_APP,index,0); end; end; procedure TForm1.WMApp(var Msg:TMessage); begin if Msg.WParam >= 0 then begin TLabel(LabelList[Msg.WParam]).Free; LabelList.Delete(Msg.WParam); end; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.