Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Form1.EditCount


J.Borchert - Sa 25.06.05 17:18
Titel: Form1.EditCount
Greife zum Speichern der Einstellungen meines Projektes folgendermaßen auf die Edits zu:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
  
        //...// 
        for i:=1 to 132 do
          Ini.WriteString('Config','Edit'+IntToStr(i),
                          TEdit(Form4.FindComponent('Edit'+inttoStr(i))).Text);
        //...//


Gibt es so etwas wie Form1.EditCount um die 132 ein für alle mal zu ersetzen ?

mfG Jürgen

Moderiert von user profile iconraziel: Code- durch Delphi-Tags ersetzt.


raziel - Sa 25.06.05 17:44

Direkt gibts nichts, aber du kannst immerhin die Anzahl der Komponenten auf der Form mit Form1.ComponentCount ausgeben lassen. Dann musst du nur noch jedes einzeln prüfen, ob es sich dabei um ein Edit handelt und einen Zähler inkrementieren.

Also ungefähr so (ungetestet, grad kein Delphi zur Hand):

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function Form1.EditCount: Integer;
var i: Integer;
begin
  result := 0;
  for i := 0 to ComponentCount-1 do
  begin
    if (Form1.Components[i] is TEdit) then
      Inc(result);
  end;
end;

Alternativ kannst du diese Schleife natürlich direkt in deine Speicherfunktion einfügen und falls die Komponente ein Edit ist, direkt den Inhalt speichern...

Gruß,
raziel


Gausi - Sa 25.06.05 17:44

Nicht direkt, aber so dürfte es klappen:

Delphi-Quelltext
1:
2:
3:
for i := 0 to Form1.Components.Count - 1 do   
   if Form1.Components[i] is TEdit then   
      dosomething;


J.Borchert - Sa 25.06.05 18:53

Danke!