AGB  ·  Datenschutz  ·  Impressum  







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

Variablen Massenhaft definieren

Ein Thema von Kegasetu · begonnen am 20. Okt 2020 · letzter Beitrag vom 22. Okt 2020
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:07
Mit Arrays wird es eher übersichtlicher finde ich anstelle dutzende variablen zu nutzen.
Da sollte man ja wissen welches Array für was zuständig ist.
Oder ein Array aus Arrays etc...
Helfen könnte es wenn Du beschreibst was Du eigentlich vorhast, so kommen viele Ideen zur besseren Umsetzung zustande.
(Records, Klassen, Arrays etc...)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:12
... und ein paar Infos zu den eigenen Vorkenntnissen bezüglich Programmierung und Delphi ...
(und zur genutzten Delphi-Version)
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#3

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:21
... und ein paar Infos zu den eigenen Vorkenntnissen bezüglich Programmierung und Delphi ...
(und zur genutzten Delphi-Version)
Also ich würde sagen Anfänger. Früher war ich mal besser, aber mittlerweile ist vieles weg. Ich bleibe aber bei diesen Basic Zeug, viel komplizierter wird es nicht.
Ich nutze Delphi 10.3
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:31
Ich würde eine TStringList anstelle lauter Edit-Felder nutzen, dann kannst Du auch easy durchiterieren.
Wenn Dein Array[1..28] lautet auch bei 1 anfangen und nicht bei 0.

Also, Editfelder ein OnChange zuweisen um den Inhalt in die StringList zu pressen, irgendwann später deine for i := 1 to 28 Sache durchführen.

//Edit
Oder generell alles in eine Klasse verfrachten, das erscheint mir am sinnvollsten.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#5

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:51
[QUOTE=KodeZwerg;1475798]Ich würde eine TStringList anstelle lauter Edit-Felder nutzen, dann kannst Du auch easy durchiterieren.
Wenn Dein Array[1..28] lautet auch bei 1 anfangen und nicht bei 0.

Also, Editfelder ein OnChange zuweisen um den Inhalt in die StringList zu pressen, irgendwann später deine for i := 1 to 28 Sache durchführen.

Das Problem mit dem StringGrid ist die Übersichtlichkeit für den Anwender. Die Werte müssen räumlich getrennt zu betrachten sein.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:53
StringList ist nicht gleich StringGrid

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Beach

Registriert seit: 3. Mär 2019
Ort: Kappel
46 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:56
[...]
Auch den Arrays bin ich nicht unaufgeschlossen. Ich müsste nur ständig eine Liste parat haben, an der ich ablesen kann, welche Stelle für was steht.
[...]
Ich bin zwar mit Lazarus unterwegs, aber bei Delphi wird es bestimmt vergleichbar sein.
Mir kommt da der Begriff "sprechende variablen" und, wenn ich mich richtig erinnere, "enumerated Types" (?¿) in den Kopf.

Ein Beispiel
Code:
  DataLoaded_keys: (cfg, xpc, ypc, zpc);
  DataLoaded: array[cfg..zpc] of boolean;
Das Array kann ich dann "sprechend" mit DataLoaded[xpc], als Beispiel, verwenden und gibt mir dann den boolschen Hinweis ob die Daten geladen wurden oder nicht.
Es "liest" sich recht eindeutig was man gerade macht. Geht auch mit mehrdimensionalen Arrays.

Die Spezialisten hier können das bestimmt korrigieren und besser erklären.
MfG Jürgen
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 11:04
Wenn ich mir das Bild anschaue, würde ich mir ein Array mit Typ Record erschaffen die dann ComboBox.Index <Bauteil> gleich sind.
Das Record mit dementsprechend viele Strings bereitstellen (Konvertierung StrToInt/IntToStr würde ich da raushalten)
Bei <Abschnitt> habe ich keine Ahnung was da passiert, also lasse ich das mal außen vor.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.358 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:42
Also grundsätzlich gibt es viele Möglichkeiten ... je nachdem, welche Konzepte man einsetzen möchte.

Ich würde mal denken, Klassen und Generics sind hier auszuschließen.

Die Daten also entweder in einfache Variablen, wie Du es angedeutet hast, oder in Arrays. Du musst einfach sehen, was für Dich praktikabler ist.

Wichtig wäre, Formular und Logik zu trennen.
Man könnte als Schnittstelle zwei Funktionen definieren:

DatenInFormularSchreiben und DatenAusFormularHolen.
Dort realisierst Du das, was Du im Eingangspost gemacht hast.
Nur die zwei Funktionen sollten die Controls und die Variablen benutzen.
Dann brauchst Du noch eine Funktion BerechneDaten, die z.B. von einem Button angestoßen wird.

Dort sollten alle Berechnungen ablaufen, ohne noch einmal auf ein Edit oder anderes Control zuzugreifen.

In DatenAusFormularHolen kannst Du zwar so etwas wie FindControl('Edit1') benutzen, aber es wird einfacher sein, wenn Du es wie im Eingangspost machst und direkt Edit1.Text benutzt.
Allerdings würde ich den Controls immer sprechende Namen zuordnen, also z.B. zg111 := StrToInt(Edit_zg111.Text);
Das vereinfacht schon mal einiges und vor allem die Wartung und Fehlersuche.

Soweit vielleicht erst mal als Richtungsempfehlung...
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
Kegasetu

Registriert seit: 26. Sep 2013
85 Beiträge
 
#10

AW: Variablen Massenhaft definieren

  Alt 20. Okt 2020, 10:50
Also grundsätzlich gibt es viele Möglichkeiten ... je nachdem, welche Konzepte man einsetzen möchte.

Ich würde mal denken, Klassen und Generics sind hier auszuschließen.

Die Daten also entweder in einfache Variablen, wie Du es angedeutet hast, oder in Arrays. Du musst einfach sehen, was für Dich praktikabler ist.

Wichtig wäre, Formular und Logik zu trennen.
Man könnte als Schnittstelle zwei Funktionen definieren:

DatenInFormularSchreiben und DatenAusFormularHolen.
Dort realisierst Du das, was Du im Eingangspost gemacht hast.
Nur die zwei Funktionen sollten die Controls und die Variablen benutzen.
Dann brauchst Du noch eine Funktion BerechneDaten, die z.B. von einem Button angestoßen wird.

Dort sollten alle Berechnungen ablaufen, ohne noch einmal auf ein Edit oder anderes Control zuzugreifen.

In DatenAusFormularHolen kannst Du zwar so etwas wie FindControl('Edit1') benutzen, aber es wird einfacher sein, wenn Du es wie im Eingangspost machst und direkt Edit1.Text benutzt.
Allerdings würde ich den Controls immer sprechende Namen zuordnen, also z.B. zg111 := StrToInt(Edit_zg111.Text);
Das vereinfacht schon mal einiges und vor allem die Wartung und Fehlersuche.

Soweit vielleicht erst mal als Richtungsempfehlung...
Klassen? Um Himmels Willen, bloß nicht

So sieht das Programm aus, vielleicht wird es dann etwas klarer, was ich machen will (Bild im Anhang).

Es sollen erstmal ein paar Informationen eingegeben werden und dann gespeichert. Durch den Button "Auswählen" sollen die Informationen dann wieder in den Edit-Feldern erscheinen.

Ich frage mal ganz frech. Gibt es dafür eventuell einen vorgefertigten Code? Eigentlich ist es ja relativ simpel.
Angehängte Grafiken
Dateityp: png Unbenannt.png (11,4 KB, 82x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 10:44 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