![]() |
Re: wie fügt man in ein zwedimensionales array werte ein
Mit Listen hast du das rowcount Problem nicht.
Dein 2D Array musst du mit SetLength dynamisch vergrössern. Aber vertue dich nicht, sonst knallen dir Exceptions um die Ohren. Nimm eine Liste. Es ist doch schon alles erklärt. Warum plagst du dich mit unflexiblen Array rum, wenn du eine dynamische Struktur verwalten musst. Die Liste nimmt dir doch all die Aufgaben ab. |
Re: wie fügt man in ein zwedimensionales array werte ein
irgenwie steh ich gerade auf dem schlauch denn ich versteh nicht an welcher stellen man die einzlenen quellcodeteile einfügen muss und wie man sie in andere procedures einfügt (ich bin absoluter neuling auf diesem gebiet), viellicht könntest du die gerade in meinen quellcode oben einfügen damit ich das prinzip verstehe ansonsten bringt mir die beste liste nichts
danke gruß felix |
Re: wie fügt man in ein zwedimensionales array werte ein
Benutzt du jetzt Arrays oder Listen?
|
Re: wie fügt man in ein zwedimensionales array werte ein
listen
|
Re: wie fügt man in ein zwedimensionales array werte ein
Zitat:
|
Re: wie fügt man in ein zwedimensionales array werte ein
danke weil ich hab gerade net die peilung
|
Re: wie fügt man in ein zwedimensionales array werte ein
Hier der Unitcode:
3 Sachen, die für dich interessant sein dürften:
Delphi-Quellcode:
unit Unit24;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls, Buttons, contnrs ; type TZinsen = class private FJahr: integer; FAnfang: double; FZinsen: double; function GetEnde: double; public property Jahr : integer read FJahr write FJahr ; property Anfang : double read FAnfang write FAnfang ; property Zinsen : double read FZinsen write FZinsen ; property Ende : double read GetEnde ; end; TForm1 = class(TForm) BitBtn1: TBitBtn; edSparbetrag: TEdit; edFestzins: TEdit; edMindestLaufzeit: TEdit; StringGrid1: TStringGrid; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure FormCreate(Sender: TObject); procedure BitBtn1Click(Sender: TObject); private procedure ShowListe(Liste: TObjectList); { Private declarations } public { Public declarations } ZinsListe : TObjectList ; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); var i,Mindestlaufzeit:Integer; Festzins, Anfang:Double; Zins : TZinsen ; begin // Eingaben aus Feldern lesen Anfang:=StrToFloat(EdSparbetrag.Text); Festzins:=StrToFloat(EdFestzins.Text)/100; Mindestlaufzeit:=StrToInt(EdMindestlaufzeit.Text); // ObjectList füllen ZinsListe.Clear ; for i:=1 to Mindestlaufzeit do begin Zins := TZinsen.Create ; Zins.Jahr := i ; Zins.Anfang := Anfang ; Zins.Zinsen := Anfang * Festzins ; // Zins.Ende braucht nicht gesetzt zu werden, da dies sehr leicht // aus Anfang und Zinsen berechnet werden kann // dafür gibts in TZinsen die ReadOnly Eigenschaft Ende, die im Grunde eine Funktion aufruft // somit stellst du sicher, dass der Inhalt konsistent bleibt. Denn wann immer // du Anfang oder Zinsen veränderst, so wird Ende automatisch beim nächsten Lesen // korrekt neu berechnet // Ab damit in die Liste ZinsListe.Add(Zins) ; Anfang := Zins.Ende ; end; // Damit wäre alles berechnet... Fehlt noch die Darstellung ShowListe (Zinsliste) ; end; procedure TForm1.ShowListe (Liste : TObjectList) ; var i: Integer; Zins : TZinsen ; begin Stringgrid1.ColCount := 4 ; StringGrid1.RowCount := 1 + Liste.Count ; StringGrid1.cells[0,0] := 'Jahr' ; StringGrid1.cells[1,0] := 'Anfang' ; StringGrid1.cells[2,0] := 'Zinsen' ; StringGrid1.cells[3,0] := 'Ende' ; for i := 0 to Liste.Count - 1 do begin // der Listenindex beginnt bei 0 !!! if Liste[i] is TZinsen then begin Zins := Liste[i] as TZinsen ; StringGrid1.cells[0,i+1] := format ('%d',[Zins.Jahr]) ; StringGrid1.cells[1,i+1] := format ('%.2m',[Zins.Anfang]) ; StringGrid1.cells[2,i+1] := format ('%.2m',[Zins.Zinsen]) ; StringGrid1.cells[3,i+1] := format ('%.2m',[Zins.Ende]) ; end else raise exception.Create ('Ungültiges Objekt in Objektliste.') ; end; StringGrid1.FixedCols := 0 ; StringGrid1.FixedRows := 1 ; end; procedure TForm1.FormCreate(Sender: TObject); begin ZinsListe := TObjectList.Create ; end; { TZinsen } function TZinsen.GetEnde: double; begin Result := Anfang + Zinsen ; end; end. |
Re: wie fügt man in ein zwedimensionales array werte ein
:-D VIELEN DANK FÜR DIE MÜHE!!!!!!!!!!!!!!!!! Ich schauhe es mir jetzt mal in Ruhe an (bin keiner der einfach den kramm einfügt ohne die sachen zu verstehen, sonst gibts später nur probleme) und melde mich dann, aber vielen Dank noch mal echt super denn so langsam versteh ichs vielleicht.... ;)
|
Re: wie fügt man in ein zwedimensionales array werte ein
Zitat:
|
Re: wie fügt man in ein zwedimensionales array werte ein
Wo bitte schön kommt im Code ein TImage vor :gruebel:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:24 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