AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen

Ein Thema von juergen · begonnen am 31. Jan 2016 · letzter Beitrag vom 31. Jan 2016
Antwort Antwort
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#1

alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen

  Alt 31. Jan 2016, 12:31
Hallo zusammen,

auf einem Panel habe ich ca. 30 Edits, wobei jedes Edit eine Überschrift für eine Spalte in einem Grid bedeutet.
Das Grid kann x Anzahl von Spalten haben.
Die Anzahl der vorhandenen Grid-Spalten zu ermitteln ist kein Problem.
Die Überschrift pro Spalte zu setzen ist auch kein Problem.

Aber wie könnte ich den Text von Edit 1 in Spalte 1 übernehmen, ... den Text von Edit 15 in Spalte 15 übernehmen usw.
Ich muss dazu irgendwie eine Schleife durchlaufen ala:
Delphi-Quellcode:
for i := Pred(cxGrid1DBTableView1.ColumnCount) downto 0 do begin
  cxGrid1DBTableView1.Columns[i].Caption := Edt_(i).Text // Pseudocode???
end;
Ich würde hier ungern mit zig If-Bedingungen arbeiten wollen, da gibt es bestimmt eine bessere Lösung.

Für Hinweise bedanke ich mich schon mal vorab!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (31. Jan 2016 um 12:41 Uhr) Grund: etwas präzsisiert mit Pseudocode
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.874 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen

  Alt 31. Jan 2016, 12:44
Z.B. mit Panel.FindComponent()
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.154 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen

  Alt 31. Jan 2016, 12:56
Oder herkömmlich...
Delphi-Quellcode:
Edits[0] := Edit1;
Edits[1] := Edit2;
usw.

Klingt mir wieder mal nach "Datenhaltung" in Kontrolls...

Baue Dir doch zur Datenhaltung lieber einen Klasse oder ein Record..

Und das wird dann eben dargestellt oder angezeigt...

Geändert von Mavarik (31. Jan 2016 um 12:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen

  Alt 31. Jan 2016, 13:00
Hallo,

beim schreiben hier wurde mir klar dass ich mit einer 2. Schleife die Componenten durchlaufen muss...
Mein jetziger Code:
Delphi-Quellcode:
  for i := 0 to Pred(cxGrid1DBTableView1.ColumnCount) do begin
    for j := 0 to ComponentCount - 1 do begin
      if (Components[j] is TEdit) and (TEdit(Components[j]).Tag = i) and (TEdit(Components[j]).Tag > 0) then cxGrid1DBTableView1.Columns[i].Caption := TEdit(Components[j]).Text;
    end;
  end;
Das Problem dabei ist, dass die erste Spalten-Überschrift leer bleibt und ich gerade nicht weiß warum.
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)

Geändert von juergen (31. Jan 2016 um 13:02 Uhr) Grund: Korrektur
  Mit Zitat antworten Zitat
Benutzerbild von juergen
juergen

Registriert seit: 10. Jan 2005
Ort: Bönen
1.176 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen

  Alt 31. Jan 2016, 13:09
So, ich hab's. Da die Tag-Eigenschaft mit 1 beginnt und nicht mit Null muss ich beim Vergleich dann auch eine "1" dazuzählen...

Delphi-Quellcode:
  // Spaltenmueberschriften dynamisch zur Laufzeit setzen...
  for i := 0 to Pred(cxGrid1DBTableView1.ColumnCount) do begin
    for j := 0 to ComponentCount - 1 do begin
      if (Components[j] is TEdit) and (TEdit(Components[j]).Tag = i + 1) and (TEdit(Components[j]).Tag > 0) then
          cxGrid1DBTableView1.Columns[i].Caption := TEdit(Components[j]).Text;
    end;
  end;
end;
Vielen Dank und allen noch einen schönen Sonntag!
Jürgen
Indes sie forschten, röntgten, filmten, funkten, entstand von selbst die köstlichste Erfindung: der Umweg als die kürzeste Verbindung zwischen zwei Punkten. (Erich Kästner)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: alle Edits durchlaufen und Edit_x_.Text einer Grid-Column zuweisen

  Alt 31. Jan 2016, 13:24
Bei 30 Edits und 30 Spalten werden hier 900 Iteration durchgeführt.

Klingt ein wenig viel ...

Es reicht völlig
Delphi-Quellcode:
for j := 0 to ComponentCount - 1 do begin
  if (Components[j] is TEdit) and (TEdit(Components[j]).Tag > 0) then
    cxGrid1DBTableView1.Columns[TEdit(Components[j]).Tag-1].Caption := TEdit(Components[j]).Text;
Dann waren es nur noch 30
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  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 23:06 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