AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Mehrere Editfelder gleichzeitig initialisieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Editfelder gleichzeitig initialisieren

Ein Thema von delphicoder123 · begonnen am 27. Feb 2019 · letzter Beitrag vom 1. Mär 2019
Antwort Antwort
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
724 Beiträge
 
Delphi 12 Athens
 
#1

AW: Mehrere Editfelder gleichzeitig initialisieren

  Alt 28. Feb 2019, 10:59
Hallo,
nehmen wir an, ich habe 3 Editfelder(edit1, edit2, edit3). Alle Editfelder will ich mit dem String "Text" befüllen.
Anstatt die Editfelder einzeln zu befüllen, sollen die Editfelder über eine for-Schleife initialisiert werden.
Wie bekomme ich das hin?
So sieht aktuell mein Code aus:

Code:
 procedure TForm1.Button1Click(Sender: TObject);
 var i:Integer;
begin
  for i := 1 to 3 do
  begin
      edit1.Text:='text';
  end;

end;
Ich benutze für sowas meist eine Funktion wie die hier:
Delphi-Quellcode:
procedure FillEditcontrols(const aText:string; const A: array of TCustomedit);
var
  i: integer;
begin
  for i:= Low(A) to High(A) do
    A[i].Text := aText;
end;
Aufgerufen aus einer Methode des Forms z. B. mit

  FillEditcontrols(String.empty,[edit1, edit2, edit3, memo1]); Der Vorteil ist hier, dass dieses Verfahren auch funktioniert, wenn die Controls sprechende Namen haben und nicht diese nutzlosen automatisch erzeugten Namen, und es funktioniert auch mit beliebig vielen Controls.
Peter Below
  Mit Zitat antworten Zitat
Pfaffe

Registriert seit: 29. Jan 2009
297 Beiträge
 
Delphi 12 Athens
 
#2

AW: Mehrere Editfelder gleichzeitig initialisieren

  Alt 28. Feb 2019, 12:45
Beispiel für beliebig viele Controls, z.B. TEdits, die auf einem Panel liegen:
Delphi-Quellcode:
for i:= 0 to Panel_Filter.ControlCount-1 do begin
  if Panel_Filter.Controls[i] is TLabel then
    (Panel_Filter.Controls[i] as TLabel).Font.Style:= []
  else if Panel_Filter.Controls[i] is TEdit then
    (Panel_Filter.Controls[i] as TEdit).Text:= ''
  else if Panel_Filter.Controls[i] is TMaskEdit then
    (Panel_Filter.Controls[i] as TMaskEdit).Text:= ''
  else if Panel_Filter.Controls[i] is TCheckBox then
    (Panel_Filter.Controls[i] as TCheckBox).Checked:= false
  else if Panel_Filter.Controls[i] is TComboBox then
    (Panel_Filter.Controls[i] as TComboBox).ItemIndex:= 0;
end;
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.251 Beiträge
 
Delphi 12 Athens
 
#3

AW: Mehrere Editfelder gleichzeitig initialisieren

  Alt 1. Mär 2019, 07:36
Vielleicht ist DuckTyping da ein gutes Stichwort.
  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 20:54 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