Alle Komponenten einer Form bearbeiten...

Rund um die LCL und andere Komponenten
Antworten
monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Alle Komponenten einer Form bearbeiten...

Beitrag von monta »

ich brauche mal nen kleinen Denkanstoss.

Ich hab eine Form, mit etlichen Komponenten und würde diese gern alle gleichzeitig zur Laufzeit formatieren.
Da ich sie nicht alle aufzählen will, hab ich es erstmal so gemacht:

Code: Alles auswählen

for i := 1 to 53 do
  begin
    with TLabel(FindComponent('L_b' + IntToStr(i))) do
    begin
      Font.Italic := true;
      //usw...
    end;
  end;


Nun hat das ja aber den entscheidenden Nachteil, das ich trotzdem die Namen brauche, und nichts anderes übrig bleibt, als die Labels mit Indes zu versehen.

Nur ein einfaches Hochzählen für alle finde ich viel zu unübersichtlich.
Gibt es ne Möglichkeit alle Komponenten einer Form durchzugehen, und je nach Tpzu formatieren?
Ich dachte es mir so, komm da aber nicht richtig weiter:

Code: Alles auswählen

for i := 1 to Form_show_all.ComponentCount do
  begin
//    if Form_show_all.Components[i] = TLabel then
//      TLabel(Form_show_all.Components[i]).Font.Italic := true;
  end;


Nur wie stellt man nun fest, was für ein Typ die aktuelle Komponente ist?
Johannes

Benutzeravatar
theo
Beiträge: 10497
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Kennst du "is" und "as" nicht?

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
  for i:=0 to ComponentCount-1 do
    if Components[i] is TEdit then
      begin
       write('Ein TEdit mit Text: ');
       writeln((Components[i] as TEdit).Text);
      end else writeln(Components[i].Name);
end;


Dein Syntax-Highlighter erkennt sie jedenfalls als reservierte Wörter....;-)

monta
Lazarusforum e. V.
Beiträge: 2809
Registriert: Sa 9. Sep 2006, 18:05
OS, Lazarus, FPC: Linux (L trunk FPC trunk)
CPU-Target: 64Bit
Wohnort: Dresden
Kontaktdaten:

Beitrag von monta »

ja der gute Highlighter ;)

ist ja peinlich...schon x-mal gesehen, aber auf as/is bin ich nicht gekommen, nur of hab ich probiert :oops:

(Selbst verwendet hab ichs glaub ich noch nie)
Johannes

Antworten