AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Gibts sowas wie findproperty?

Ein Thema von SearchBot · begonnen am 6. Jul 2013 · letzter Beitrag vom 7. Jul 2013
Antwort Antwort
Benutzerbild von MrMooed
MrMooed

Registriert seit: 18. Feb 2012
101 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Gibts sowas wie findproperty?

  Alt 6. Jul 2013, 23:12
Hallo,

im einfachsten Falle könntest du deine Komponenten durchnummerieren:
Code:
edit1
edit2
usw.
und dann gehst du in einer (z.B. for-) Schleife deine Komponenten durch:
Delphi-Quellcode:
for i:=1 to EditCount do
  (TForm1.FindComponent('Edit' +IntToStr(i)) as TEdit).Text := '';
for i:=1 to CheckBoxCount do
  (TForm1.FindComponent('CheckBox' +IntToStr(i)) as TCheckBox).Checked := aufWert;
Gruß,
MrMooed
"Unsere Luft hat einen Vorteil: Man sieht was man einatmet" - Ein Chinese
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
328 Beiträge
 
Delphi 12 Athens
 
#2

AW: Gibts sowas wie findproperty?

  Alt 6. Jul 2013, 23:37
Hallo,

@MrMooed:
ja diese Methode ist mir bekannt, mache ich auch schon immer so.
Aber im jetzigen Projekt haben die Felder ganz unterschiedliche Namen, weil sie auch für den Benutzer sichtbar werden - und ich möchte es halt gerne "vereinfachen"

@Volker Z.
Hm...
das mit Overload sieht gut aus...
Ich denke, das ist es.
Dankeschön
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
10.053 Beiträge
 
Delphi 12 Athens
 
#3

AW: Gibts sowas wie findproperty?

  Alt 7. Jul 2013, 00:04
Ja, es gibt so etwas wie findproperty...

Nennt sich GetPropInfo aus der Unit TypInfo. Da bekommst du einen Pointer auf diese Information (PPropInfo), so dass du über PropertyInfo.PropType^.Kind z.B. den Typ der Property heraus bekommst. Mit SetPropValue kannst du den Wert einer Property setzen. Dafür musst du nicht unbedingt vorher die Information holen, da das rein über den Namen einfach so geht, aber ich mache das vorher um, wenn es eine Klasse ist, mir diese zu holen.

So kann ich auch Font.Name setzen, da ich zuerst feststelle, dass Font vom Typ tkClass existiert, mir das Objekt hole und SetPropValue dann auf dieses Objekt anwende, sprich dort Name setze.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#4

AW: Gibts sowas wie findproperty?

  Alt 7. Jul 2013, 00:18
Wie wäre es denn mit diesem hier?
Delphi-Quellcode:
procedure TForm1.SetAll(sText : string; bChecked : Boolean);
Var i : integer;
begin
  for i := 0 to ComponentCount - 1 do begin
         if Components[i] is TEdit then TEdit(Components[i]).Text := sText
    else if Components[i] is TCheckBox then TCheckBox(Components[i]).Checked := bChecked
    ;
  end;
end;
(nur hingedaddelt, nicht getestet)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz