Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#9

Re: wie fügt man in ein zwedimensionales array werte ein

  Alt 17. Mai 2007, 14:14
Ich glaube, 2-dimensionale Arrays bieten sich für dein Fall überhaupt nicht an. Das, was du versuchst im Speicher abzubilden, nennt sich eine Datenliste.

Delphi-Quellcode:
Cells[0,0]:='Jahr';
Cells[1,0]:='Anfang';
Cells[2,0]:='Zinsen';
Cells[3,0]:='Ende';
Deine Anzahl der Spalten ist fest, die der Zeilen variabel.

Stell dir vor, du hast 30 Spalten zu verwalten, oder es kommt einfach morgen eine dazu. Weisst Du dann noch genau, dass Spalte 2 die Zinsen beinhaltet. Was, wenn du eine Spalte hast, die kein Float ist, sondern z.B. einen String beinhaltet, oder ein Boolean, oder auf irgendein anderes Objekt verweist.

Erstell dir eine Klasse (oder von mir auch gern ein Record, wenns keine Funktionalität braucht):

Delphi-Quellcode:
TZinsen = class
public
   Anfang, Ende : TDateTime ;
   Zinsen : double ;
end ;
Dazu eine TObjectList (irgendwie ist die heut bei mir sehr beliebt), die du in deiner Form im public Teil definierst:

Delphi-Quellcode:
TForm1 = class (TForm)
...
public
   ZinsenList : TObjectList ;
end ;
Kommt eine Zinsenzeile dazu, dann geht das so:

Delphi-Quellcode:
procedure TForm1.NeuerZinssatz ;
var
  Zinsen : TZinsen ;
begin
    Zinsen := TZinsen.Create ;
    Zinsen.Anfange := now ;
    Zinsen.Ende := EncodeDate (2007,12,31) ;
    Zinsen.Zinsen := 8.15 ;
    ZinsenListe.Add (Zinsen) ;
end ;
Die Klasse hat übrigens den Vorteil gegenüber einem einfachen Record, dass du auch direkt innerhalb der Klasse Berechnungen ausführen kannst, die nur das aktuelle Objekt betreffen.

ObjectListen sind einfach zu durchlaufen, zu zählen, und auch nachher wieder freizugeben, denn die enthaltenen Objekte von TZinsen werden gleich mit freigegeben.
  Mit Zitat antworten Zitat