AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Record im Array nutzen? - Sinnvollere Wege?

Record im Array nutzen? - Sinnvollere Wege?

Ein Thema von Asura · begonnen am 10. Jul 2015 · letzter Beitrag vom 20. Jul 2015
Antwort Antwort
Asura

Registriert seit: 10. Jun 2013
87 Beiträge
 
#1

AW: Record im Array nutzen? - Sinnvollere Wege?

  Alt 19. Jul 2015, 22:22
Nun, ich habe ja zwei Möglichkeiten eingetragene Daten in die Objectliste zu speichern:
Entweder ich nutze nur die Instanz Employee von der Klasse TEmployee und lasse sie mir vor dem speichern der Eigenschaften neu erzeugen.

Wie in meinem aktuellen Fall: Methode 1

Delphi-Quellcode:

procedure AddEmployeeData(Index: Integer; EmployeeData: TStringlist);
begin

  F_Main.Employee := TEmployee.Create();

  F_Main.Employee.CardID := StrtoInt(EmployeeData[0]);
  F_Main.Employee.Prename := EmployeeData[1];
  F_Main.Employee.Surname := EmployeeData[2];
  F_Main.Employee.Birthday := StrtoDate(EmployeeData[3]);
  F_Main.Employee.Workstation := EmployeeData[4];
  F_Main.Employee.Position := EmployeeData[5];

  F_Main.OLEmployees.Add(F_Main.Employee); // Employee Daten werden als neuer Eintrag gespeichert

  showmessage(TEmployee(F_Main.OLEmployees.Items[0]).Prename); // dient als test
  showmessage(TEmployee(F_Main.OLEmployees.Items[1]).Prename); // dient als Test
end;
Methode 2:

Oder ich müsste für jeden eingetragenen Mitarbeiter beispielsweise eine neue Instanz mit Indexnummer versehen.
Beispiel:   F_Main.Employee1 := TEmployee.Create(); // Für Mitarbeiter 1 der eingetragen wurde   F_Main.Employee2 := TEmployee.Create(); // Für Mitarbeiter 2 der eingetragen wurde Weil bei Equals könnte ich ja dann im Prinzip im zweiten Fall einfach:
Delphi-Quellcode:
if Employee1.Equals( Employee2 ) then
  ShowMessage( 'blablabla' );
machen, welches im ersten Fall ja nicht so einfach geht, da ich ja nur eine Instanz habe, nämlich Employee.

Ich hoffe nun ist das verständlicher.

EDIT: Mit der Index nummer meine ich eig nur die Zahl hinter Employee, also Employee1, Employee2 usw.

Für mich ist Methode 1 einfacher und sie funktioniert auch insoweit, nur Frage ich mich, ob man doch Methode 2 anwenden soll.

Geändert von Asura (19. Jul 2015 um 22:25 Uhr)
  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
 
#2

AW: Record im Array nutzen? - Sinnvollere Wege?

  Alt 19. Jul 2015, 22:32
Du kannst die StringList-Orgie komplett weg lassen. Anstatt die Werte aus den Edit-Feldern in eine String-Liste zu schreiben um diese dann von der String-Liste in eine neue TEmployee zu schreiben und diese Instanz dann in die Liste,

warum dann nicht gleich die Instanz mit den Werten aus den Edit-Feldern bestücken?

Machst du doch eh schon, nur mit dem Umweg über die String-Liste.
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
Asura

Registriert seit: 10. Jun 2013
87 Beiträge
 
#3

AW: Record im Array nutzen? - Sinnvollere Wege?

  Alt 19. Jul 2015, 22:39
Das mit der TStringliste mache ich nur, weil ich sämtliche Methoden, die zu der Verarbeitung der Instanz Employee zuständig sind, in einer anderen Unit haben wollte. Ich rufe aus der Unit, mit einem Formular, nur die Funktionen auf, die zu der Verarbeitung zuständig sind und es werden hier nur Formatierungsangelegenheiten hinterlegt. Also die Verwaltung der Objektlist findet praktisch nur in der anderen Unit statt.

Ich wollte hier nur die wichtigen "Main-Funktionen" von Formatierung (Wie: Was passiert wenn Edit feld 1 geändert wurde) trennen.

Edit: Achso, ich glaube ich weiß worauf ihr hinaus wollt, das ich selbst in der anderen Unit einfach diese ansprechen kann, oder?

Geändert von Asura (19. Jul 2015 um 22:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Record im Array nutzen? - Sinnvollere Wege?

  Alt 20. Jul 2015, 14:07
Edit: Achso, ich glaube ich weiß worauf ihr hinaus wollt, das ich selbst in der anderen Unit einfach diese ansprechen kann, oder?
Richtig, und das hat den Vorteil, dass du nicht wissen musst in welcher Reihenfolge die Parameter in die Liste geschrieben werden müssen.
Du kannst aber auch einfach einen Konstruktor erstellen, der die Parameter bekommt.

In beiden Fällen musst du aber nicht erst in Strings umwandeln.
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 03:17 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