AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

String zum Property casten ?

Ein Thema von renekr · begonnen am 28. Mai 2009 · letzter Beitrag vom 28. Mai 2009
Antwort Antwort
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#1

String zum Property casten ?

  Alt 28. Mai 2009, 08:49
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.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: String zum Property casten ?

  Alt 28. Mai 2009, 09:02
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
Klaus
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: String zum Property casten ?

  Alt 28. Mai 2009, 09:06
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
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#4

Re: String zum Property casten ?

  Alt 28. Mai 2009, 09:22
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.
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.465 Beiträge
 
Delphi 12 Athens
 
#5

Re: String zum Property casten ?

  Alt 28. Mai 2009, 09:26
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.
  Mit Zitat antworten Zitat
renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: String zum Property casten ?

  Alt 28. Mai 2009, 09:39
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

Danke schön trotzdem
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 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