Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   alle Textboxen in einer Form löschen (https://www.delphipraxis.net/121105-alle-textboxen-einer-form-loeschen.html)

Blumi 22. Sep 2008 13:52


alle Textboxen in einer Form löschen
 
Code:
foreach (Control c in Controls) {
    if (c is TextBox) {
        c.Text = String.Empty;
    }
}
Doch das löscht nur die in der aktuellen Form. Wie kann ich auch die in einer Groupbox leeren?

Mfg

:-D

Neutral General 22. Sep 2008 13:53

Re: alle Textboxen in einer Form löschen
 
Ich schätze, du musst das ganze rekursiv lösen. Kann aber selbst kein C...

Hab mal einen Delphi-Code geschrieben, der alle Namen der TMemos auf dem Formular rekursiv auflistet. Das clearen geht halt dementsprechend.

Delphi-Quellcode:
procedure GetMemoNames(AParent: TControl; AList: TStrings);
var i: Integer;
begin
  for i:= 0 to AParent.ComponentCount-1 do
  begin
    if AParent.Components[i] is TMemo then
      AList.Add(AParent.Components[i].Name); // TMemo(AParent.Components[i]).Clear;
    if AParent.Components[i] is TControl then
      GetMemoNames(TControl(AParent.Components[i]),AList);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringlist;
begin
  sl := TStringlist.Create;
  try
    GetMemoNames(Self,sl);
    ShowMessage(sl.Text);
  finally
    sl.Free;
  end;
end;

Jürgen Thomas 22. Sep 2008 16:00

Re: alle Textboxen in einer Form löschen
 
Zitat:

Zitat von Neutral General
Ich schätze, du musst das ganze rekursiv lösen.

So ist es. Unter NET sind alle Controls hierarchisch registriert. Also geht es nur mit einem rekursiven Aufruf.

Auf Beispiel-Code verzichte ich; wie Du das am sinnvollsten erledigst, hängt zu sehr von Deinem eigentlichen Zweck ab.

Jürgen


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz