Autor Beitrag
frank-wob
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 14.11.05 16:22 
Hallo,
ich habe mal wieder ein Problem. Wie kann ich bei allen Komponenten gleichen Typ's zur Laufzeit eine Eigenschaft verändern.

Genauer: Ich habe einige TDBEdit Komponenten auf meinem Form und möchte zur Laufzeit überall den Text auf den gleichen Eintrag setzen. Bisher habe ich immer nach der Methode
DBEdit1.Text:='blabla';
DBEdit2.Text:='blabla'; gearbeitet. Es muss doch aber eine Möglichkeit geben mit der ich alle TDBEdits den gleichen Text zuweisen kann.

Danke schon mal
MSCH
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1448
Erhaltene Danke: 3

W7 64
XE2, SQL, DevExpress, DevArt, Oracle, SQLServer
BeitragVerfasst: Mo 14.11.05 16:26 
schau dir mal die Funktionen ComponentCount() und den Operator IS an. Dort findest du das gesuchte.
grez
msch

_________________
ist das politisch, wenn ich linksdrehenden Joghurt haben möchte?
Grendel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 443

Gentoo Linux, MacOS X, Win 2000
D5 Ent, D7 Ent, Lazarus, Anjuta, MonoDevelop
BeitragVerfasst: Mo 14.11.05 16:28 
Ganz einfach!

Du durchläuft die "Components" des Formulars auf dem du die Komponenten liegen hast und prüfst auf den Typ. Ist der Typ der gewünschte einfach die entsprechende Eigenschaft manipulieren.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
var
  i: Integer:
begin
  for i := 0 to self.ComponentCount - 1 do
  begin
    if (Components[i] is TDBEdit) then
      TDBEdit(Components[i]).Text := 'blablub'
  end;
end;


Bis neulich ...
chrisw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 439
Erhaltene Danke: 3

W2K
D7
BeitragVerfasst: Mo 14.11.05 16:29 
ausblenden Delphi-Quelltext
1:
2:
for i := 0 to ControlCount -1 do  
  if Controls[i] is TDBEdit then (Controls[i] as TDBEdit).Text := 'blablabla';

_________________
Man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug.
frank-wob
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 14.11.05 16:40 
Danke schön