Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String zum Property casten ? (https://www.delphipraxis.net/134750-string-zum-property-casten.html)

renekr 28. Mai 2009 07:49


String zum Property casten ?
 
Hi @,
ich habe ein kleines Problem und komme nicht weiter.

Ich habe ein Array pfDTO[J]. - hier sind dann die Feldnamen drin .
Also beim Abrufen der Daten vom Array benötige ich ja die angabe der Namen !

Nun habe ich die Namen aber als String in einem anderen array drin.

Ist es möglich das ich das 1. Array per casten von einem String ansprechen kann ?
z.b: pfDTO[J].cast('Feldname1')


Vielen Dank.

Klaus01 28. Mai 2009 08:02

Re: String zum Property casten ?
 
Zitat:

Zitat von renekr
Hi @,
ich habe ein kleines Problem und komme nicht weiter.

Ich habe ein Array pfDTO[J]. - hier sind dann die Feldnamen drin .Also beim Abrufen der Daten vom Array benötige ich ja die angabe der Namen !

Nun habe ich die Namen aber als String in einem anderen array drin.

Ist es möglich das ich das 1. Array per casten von einem String ansprechen kann ?
z.b: pfDTO[J].cast('Feldname1')


Vielen Dank.

Guten Morgen,

zumindest ich verstehe nicht was Du willst.
Hast Du mal ein kleines Codebeispiel?

Grüße
Klaus

renekr 28. Mai 2009 08:06

Re: String zum Property casten ?
 
Hi,
ok also hier:

So ist es mit dem Array über ein Clientdataset
Delphi-Quellcode:
Source_Field:=Pass_Fail_Fields[i].Field_org;
 Table.FieldByName(Target_Field).AsString:=DateToStr(clientdataset.FieldByName(Source_Field).AsDateTime);
so möchte ich es abändern weil ich nun kein CDS mehr bekomme sondern ein Array of DTO.
Delphi-Quellcode:
Source_Field:=Pass_Fail_Fields[i].Field_org;
 Table.FieldByName(Target_Field).AsString:=DateToStr(pfDTO[J].[u]Source_Field[/u].AsDateTime);
Leider muss ich dem Array[J].hier ein Property Wert mitgeben.
Ich habe aber nur einen String von einem anderen Array welchen ich hier casten will falls es geht.


danke

Satty67 28. Mai 2009 08:22

Re: String zum Property casten ?
 
Ganz kapiert hab' ich es auch noch nicht. Du willst ein Element des Array pfDTO ansprechen. Als Index aber nicht ein Integer, sondern einen String.

Also quasi eher so pfDTO['EinElement']...?

Ist es eine eigene Klasse oder eine erweiterbare? Man kann ja auch Strings als Index für propertys definieren.

Blup 28. Mai 2009 08:26

Re: String zum Property casten ?
 
Zu deinem ersten Post:

Wenn die Object-Klasse oder Record-Typ, der im Array pfDTO gespeichert wird, eine Methode "cast" implementiert, dann ist so ein Aufruf möglich.

Dein zweites Post ist genauso unverständlich formuliert wie das erste.
Wenn die Klasse, die in pfDTO gespeichert ist, eine Methode bereitstellt, der man einen Feldnamen als String übergeben kann, dann benutze diese. Wenn dort aber ein Index oder eine Konstante erwartet wird, dann muss der Feldname erst in diesen Wert übersetzt werden. Z.B. Bei TStringList gibt es dafür die Methode IndexOf. Ein simples Casten ist nicht möglich.

renekr 28. Mai 2009 08:39

Re: String zum Property casten ?
 
Hi,
also ich wollte einfach nur den Feldnamen als String ansprechen was ich nun herausgefunden habe das das so nicht möglich ist,leider.

Nun muss ich alles umstellen :wall: :wall:

Danke schön trotzdem


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz