Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   For-Schleife in Tabelle (https://www.delphipraxis.net/186779-schleife-tabelle.html)

Luckner 29. Sep 2015 12:12

Datenbank: Firebird • Version: 1.5 • Zugriff über: Dataset

For-Schleife in Tabelle
 
Hallo, ich schreibe hier mal kurz ein Bespiel auf, was nicht funktioniert aber möglicherweise meine Absicht besser erklärt.
Delphi-Quellcode:
       for i := 1 to StrToInt(ComboBoxNumerierungAnzahl.Text) do
         begin
           oEdit := FindComponent('ComboBoxNummerierung' + IntToStr(i)) as TJvValidateEdit;
           oEdit.Text := DataModuleArtikel.ArtikelreferenzNUMMERIERUNG(i).AsString;
           i := i +1;
         end;
DataModuleArtikel.ArtikelreferenzNUMMERIERUNG(i) funktioniert nicht, aber wie könnte man das Lösen. Würde mir menge Programmzeilen ersparren.

Danke, Luckner

Neutral General 29. Sep 2015 12:14

AW: For-Schleife in Tabelle
 
Datasets durchläuft man so:
Delphi-Quellcode:
while not Dataset.Eof do
begin
  Daten := Dataset.FieldByName('FELD').AsString;
  Dataset.Next;
end;
Du kannst nicht direkt per Index auf die Records zugreifen.
Achja: Bei for-schleifen verändert man die Schleifenvariable nicht selbst!
Das geht automatisch!

In deinem Fall also:
Delphi-Quellcode:
i := 1;
while not DataModuleArtikel.Eof do
begin
  oEdit := FindComponent('ComboBoxNummerierung' + IntToStr(i)) as TJvValidateEdit;
  oEdit.Text := DataModuleArtikel.ArtikelreferenzNUMMERIERUNG.AsString;
  inc(i);
  DataModuleArtikel.Next;
end;

Sir Rufo 29. Sep 2015 12:20

AW: For-Schleife in Tabelle
 
Mit einem
Delphi-Quellcode:
class helper
könnte man das schon realisieren. Die Frage nach Sinn oder Unsinn sei mal nicht berücksichtigt

Luckner 29. Sep 2015 12:21

AW: For-Schleife in Tabelle
 
Hallo Neutral General,
in dieser Tabelle gibts es die Spalten: NUMMERIERUNG1, NUMMERIERUNG2 ...., NUMMERIERUNG6. Also nicht die Anzahl der Datensätze, sondern Sprung von Spalte zur Spalte.

Sir Rufo 29. Sep 2015 12:23

AW: For-Schleife in Tabelle
 
Zitat:

Zitat von Luckner (Beitrag 1317189)
Hallo Neutral General,
in dieser Tabelle gibts es die Spalten: NUMMERIERUNG1, NUMMERIERUNG2 ...., NUMMERIERUNG6. Also nicht die Anzahl der Datensätze, sondern Sprung von Spalte zur Spalte.

Ich glaube das sind Komponenten ... jetzt sollte es klingeln ;)

Luckner 29. Sep 2015 12:29

AW: For-Schleife in Tabelle
 
Hallo Sir Rufo, es klingelt nicht. Meine Klingel scheint defekt zu sein. Bitte einen Tip.

Luckner

Sir Rufo 29. Sep 2015 12:32

AW: For-Schleife in Tabelle
 
Zitat:

Zitat von Luckner (Beitrag 1317193)
Hallo Sir Rufo, es klingelt nicht. Meine Klingel scheint defekt zu sein. Bitte einen Tip.

Luckner

Wie findest du denn die
Delphi-Quellcode:
TEdit
-Komponenten?
Wie findet man dann wohl die
Delphi-Quellcode:
TField
-Komponenten?

Jetzt besser?

Neutral General 29. Sep 2015 12:52

AW: For-Schleife in Tabelle
 
Zitat:

Zitat von Luckner (Beitrag 1317189)
Hallo Neutral General,
in dieser Tabelle gibts es die Spalten: NUMMERIERUNG1, NUMMERIERUNG2 ...., NUMMERIERUNG6. Also nicht die Anzahl der Datensätze, sondern Sprung von Spalte zur Spalte.

Delphi-Quellcode:
for i := 1 to StrToInt(ComboBoxNumerierungAnzahl.Text) do
begin
  oEdit := FindComponent('ComboBoxNummerierung' + IntToStr(i)) as TJvValidateEdit;
  oEdit.Text := DataModuleArtikel.FieldByName('NUMMERIERUNG' + IntToStr(i)).AsString;
  i := i +1;
end;
SirRufo: Ist bei Feldern eines Datasets gar nicht nötig. Dafür gibts ja schon FieldByName ;)

Luckner 29. Sep 2015 12:58

AW: For-Schleife in Tabelle
 
Jaaa, danke. Meine Klingel hat Kontaktprobleme. Kleine Wartung wäre nötig. Oder mal Pause und Mittag.

Danke, Luckner

Sir Rufo 29. Sep 2015 13:01

AW: For-Schleife in Tabelle
 
Zitat:

Zitat von Neutral General (Beitrag 1317198)
SirRufo: Ist bei Feldern eines Datasets gar nicht nötig. Dafür gibts ja schon FieldByName ;)

Der TE hat nach den Feld-Komponenten gefragt und ich fand es sehr witzig, dass er weiß, wie man eine Edit-Komponente über den Namen findet aber nicht, wie man eine Feld-Komponente über den Namen findet.

Somit war meine Antwort darauf gerichtet, die Transferleistung ein wenig zu kitzeln. Es ging nicht um Sinn oder Unsinn oder einen anderen Weg


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:36 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz