![]() |
Felder eines Objectes
Hallo und guten Tag,
ich habe folgendes Problem: aus einer Objectlist hole ich mir ein enthaltenes Object. Dieses enthält Variablen wie zb. Val1 Val2 Val3 ... ... ... Nun möchte ich jedes dieser Variablen zur Laufzeit mit Werten füllen jedoch benötige ich nicht alle Variablen sondern zb. nur Val1 Val2 wie kann ich diese Variablen aus dem Object in einer Schleife abfragen, zb for i := 0 to 10 obj.Val+IntToStr(i) := irgendwas funktioniert leider nicht Vielen Dank für eine Antwort Michael |
AW: Felder eines Objectes
Wie wäre es an dieser Stelle mit einem (dynamischen) Array? Dann kannst du auch mit einer (For-)Schleife durchlaufen.
|
AW: Felder eines Objectes
Oder per Generics auf Feld/Property
Delphi-Quellcode:
zugreifen.
'Val' + IntToStr(i)
Oder in den Objekten "manuell" einen Zugriff über Funktion mit Name oder über ein Array-Property einbauen. (zusätzlich) Oder geht auch andersrum. In den Objekten ein Array und die "Variablen" werden durch je ein Index-Property ersetzt, auf den selben Getter/Setter, wie für das Array-Property. :stupid: Es ist eh "ungünstig" wenn direkt auf die Variablen Felder zugegriffen wird. |
AW: Felder eines Objectes
hallo himitsu,
uiha das kling schwierig, könntest Du mir ein codesnipsel senden? |
AW: Felder eines Objectes
Ich muss mich korrigieren,
nicht die Variablen des Objects sollen beschrieben werden sondern ich möchte den Inhalt lesen, es handelt sich um eine VAL Menge von 50, diese möchte ich in einer Schleife auslesen... |
AW: Felder eines Objectes
entweder über die alte RTTI (unit TypeInfo) oder die neue RTTI
![]() KOmmt also erst mal drauf an welche Delphi-Version du hast, dann bastelt dir sicherlich jemand auch einen Beispielcode... |
AW: Felder eines Objectes
Danke für die Antwort,
ich arbeite tatsächlich noch mit Delphi 6.0 (Zwangsläufig weil in der Firma nichts anderes verfügbar ist) |
AW: Felder eines Objectes
Natives ObjectPascal ohne RTTI:
Delphi-Quellcode:
type
TTest = class private FTest: array[1..9] of Integer; function Getter(Index: Integer): Integer; procedure Setter(Index, Value: Integer); public property Test1: Integer index 1 read Getter write Setter; ... property Test9: Integer index 9 read Getter write Setter; property Test[Index: Integer]: Integer read Getter write Setter; end; |
AW: Felder eines Objectes
DANKE!!! so funktionierts!!
noch eine Frange: ich habe eine ObjectListe mit n Objekten die ich aus einer DB Lade. das erste Feld des Objectes ist ein Wert vom Typ String der jedoch nummerisch ist. wie kann ich diese Feld in der Objektliste sortieren? Danke für weitere Antworten Michael |
AW: Felder eines Objectes
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:18 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