コンポーネント(TEdit)を動的に作成しました。何個のEditが作成されたかは分っています。タグは作成された順番に割り当てているので、「最後のEditのタグ=作成されたEditの数」というようにしています。そこで、Editのタグを指定してそのEditのメソッドを利用するということはできないでしょうか?
ご教授どうかよろしくお願いします。
Editのメソッドを利用、というのはどういうことを指していますか?
同じTEditであれば、Tagの内容がどうあれ、同じメンバ関数を持っています。
例えば、TEditを3個作り、その3個全てのSelectAllを呼び出したいということでしょうか。
Tagを使わずに、配列に入れれば
for i := 0 to 2 do EditArray[i].SelectAll;
で0〜2の3つのEditのSelectAllを順次呼び出せます。
Editのイベントで、自身(Sender)のTagの値を見て、どのEditであるかを判断することはできますが、その逆をするにはそれぞれのEditのTagと比較してやらないとできないと思います。
分りにくくてすみません。
メソッドというのは、例えば、Edit.text(←この部分) := 'test';というようなことを、タグを指定して実行したいということです。
また、タグを指定して、そのタグをもったEditがすでに作られているかどうかを判定するようなこともしたいのですが、ご教授お願いします。
>Edit.text(←この部分) := 'test';というようなことを、タグを指定して実行
う〜ん.イマイチ状況がわかりません.
Tagを使用する理由と,その,Edit.text:=XXXX というのは,どんなイベント
で呼出すのかというか,タイミングが..,
具体的なレスをつけることができませんね.これでは.
こんな感じでしょうか.
procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
AEdit : TEdit;
begin
for i := 0 to Form1.ComponentCount-1 do begin
if (Form1.Components[i] is TEdit) then begin
AEdit:=(Form1.Components[i] as TEdit);
if AEdit.Tag=1 then AEdit.Text:='AAA';
end;
end;
end;
ツイート | ![]() |