フォーム内のすべてのTEDIT(複数可)を検索したい場合は、次の操作を行うことができます
var
i: Integer;
begin
for i := 0 to Self.ComponentCount- 1 do
if Self.Components[i] is TEdit then
ShowMessage(TEdit(Self.Components[i]).Text);
end;
あなたTEditsがグループボックス、パネルなどの他のコントロール(上に置かれている場合
var
i: Integer;
begin
for i := 0 to gbx1.ControlCount - 1 do
if gbx1.Controls[i] is TEdit then
ShowMessage(TEdit(gbx1.Controls[i]).Text);
end;
か、複数のTWinControlsで検索できます:、など)、あなたは、あなたが何をすべきちょうどこれらのコントロールの内部で検索したい
var
i: Integer;
begin
for i := 0 to Self.ControlCount - 1 do
begin
//TEdits are in TGroupBox
if Self.Controls[i] is TGroupBox then
ReadEdits(TGroupBox(Self.Controls[i]))
//TEdits are in TPanel
else if Self.Controls[i] is TPanel then
ReadEdits(TPanel(Self.Controls[i]))
else ... (other possible Parent Controls)
end
end;
procedure TForm1.ReadEdits(aParent: TWinControl);
var
i: Integer;
begin
for i := 0 to aParent.ControlCount - 1 do
if aParent.Controls[i] is TEdit then
ShowMessage(TEdit(aParent.Controls[i]).Text)
end;
あなたはhttps://stackoverflow.com/a/13649350/2093077 – saastn
おかげでこれを見てきましたが、それは私に宣言されていない識別子います:「コンポーネントカウント」 - おそらくFastReportの –
でサポートされていないあなたは、 '、Form1を使用する必要があります。編集コントロールの所有者ではなく別のクラスで使用している場合は、「ComponentCount」を使用します。 – saastn