![]() |
Record in Array
Delphi-Quellcode:
Ich versuche aus dem Record alle Elemente auszulesen und in das Array Tage zu schreiben, da ich es benutzen möchte eine Tabelle mit Feiertagen zu bauen.
type
TKalender = class(TForm); TFrei = record Date: TDateTime; Name: string; end; TFreiTable = array of TFrei; function holeFreiTable(Year: Word): TFreiTable; var Tage : array of array of String; erster, letzter : Integer; . . . function holeFreiTable(Year: Word): TFreiTable; var EDate, Test: TDateTime; von, bis, I : Integer; begin . . Test:=(TFreiTable(TFrei.Date))[1]; //<--E2096 Methodenbezeichner erwartet //Später soll es dann mal anstelle der Test-Variablen so aussehen: { for I := erster to letzter do begin Tage[i,0]:=DateToStr(TFreiTable(TFrei(Date))[i]); Tage[i,1]:=TFreiTable[i].Name; end;} Nun ist meine Anfängerfrage: wie spreche ich jedes Feld des Record an, entlocke ihm sein Geheimnis und übergebe es als string meinem Array. Ich hoffe jemand kann mir weiter helfen. Vielen Dank |
AW: Record in Array
Zitat:
|
AW: Record in Array
Naja, ich dachte mir, mit dem 2Dimensionalen dynamischen Array, kann ich mir das später leichter lesen,denn mit Records weis ich nicht wie ich an den anfang springe, ans ende, ich weis noch nicht einmal wieviel zeilen es da gibt.
Kurzum ich kann mit Arrays besser umgehen. Blöd gell |
AW: Record in Array
Records haben keinen Anfang und kein Ende. Ein Record ist einfach nur ein Datensatz (wenn man so will), der aus mehreren Datentypen bestehen kann (aber nicht muss).
MfG Dalai |
AW: Record in Array
Du brauchst erstmal ne Variable VFT oder so vom Typ TFreiTable:
Delphi-Quellcode:
Dann geht's so
var VFT: TFreiTable;
Delphi-Quellcode:
oder
VFT[1].Date := ..
Delphi-Quellcode:
VFT[2].Name := 'Je nun';
|
AW: Record in Array
Records sind doch keine dynamischen Datenstrukturen und haben somit keinen Anfang und kein Ende. Die enthaltenen Felder sind Dir doch bekannt, wieso so umständlich?
Delphi-Quellcode:
[edit] *Pfh* das hat man davon, wenn während des Antwort Tippens der Chef reinkommt, da hätte ich mir das Abschicken sparen können. [/edit]
Liste := holeFreiTable(2014);
for i := Low(Liste) to High(Liste) do ShowMessage(Liste[i].Name + ', ' + DateTimeToStr(Liste[i].Date)); |
AW: Record in Array
Wow
Super. Danke DeddyH, gammatester,Dalai erster Fehler: Keine Variable vom Typ TFreiTable erzeugt. zweiter Fehler, ich kann nicht mit records umgehen. Da hat DeddyH geholfen. Habe nun die Inhalte in einem TStringrid, als String. Vielen Dank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 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