Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Variable als Eigenschaft brauchen (https://www.delphipraxis.net/121730-variable-als-eigenschaft-brauchen.html)

RedOne 3. Okt 2008 11:26


Variable als Eigenschaft brauchen
 
Hallo miteinander

Ich lese aus einem Modelfile verschiedene Eigenschaften aus, unter anderem welches Feld aus meiner Software in welches Feld eines Kontakteintrages im Outlook kommt.
Per Automation sollen diese Felder dann abgefüllt werden.

Hardcodiert z.B. den Vornamen, Nachnamen in einen neuen Kontakteintrag zu schreiben funktioniert schematisch folgendermassen:

Delphi-Quellcode:
_contact.FirstName:= 'Peter';
_contact.LastName:= 'Meier';
Nun habe ich die Feldbezeichner, also FirstName und LastName, gelesen aus dem Model, als String vor mir liegend.
Wie nun kann ich die Stringfelder als Eigenschaft des _contact-Objektes definieren?

Also als Beispiel sozusagen folgendermassen:

Delphi-Quellcode:
feld:= 'FirstName';
_contact.feld:= 'Peter';
Nun wird natürlich auf dem Objekt _contact nach der Eigenschaft "feld" gesucht, statt nach "FirstName". Wie kann ich dies umgehen?

Herzlichen Dank
RedOne

DeddyH 3. Okt 2008 11:32

Re: Variable als Eigenschaft brauchen
 
Ich steig da nicht ganz durch: was ist "feld" und was ist "_contact"?

mkinzler 3. Okt 2008 11:40

Re: Variable als Eigenschaft brauchen
 
Scheint ein OLE-Objekt zu sein.

DelphiKlaus 3. Okt 2008 12:23

Re: Variable als Eigenschaft brauchen
 
Hallo,

suchst Du vielleicht folgenden Lösungsansatz:

Delphi-Quellcode:
  if feld = 'FirstName' then
    _contact.feld:= 'Peter'
  else
    ....

MfG

Klaus

RedOne 3. Okt 2008 13:03

Re: Variable als Eigenschaft brauchen
 
Hallo zusammen

Danke für Eure Antworten

Also _contact ist ein OLE-Element vom Typ Item.
Dies hat verschiedene Eigenschaften wie FirstName, LastName, CompanyName, HomeFaxNumber etc.

"feld" sollte symbolisch den Typ aus dem Model darstellen.
Nehmen wir mal an "feld" wäre ein Stringarray mit den Inhalten FirstName, LastName, CompanyName, HomeFaxNumber etc.

Nun möchte ich alle Elemente per Schleife abarbeiten:

Delphi-Quellcode:
for i:= 0 to feld.count -1 do begin
  _contact.feld[i]:= 'test';
end
Damit ich nicht jede Eigenschaft des OLE-Objektes _contact einzeln abfüllen muss...
Delphi-Quellcode:
_contact.FirstName:= 'test';
_contact.LastName:= 'test';
_contact.CompanyName:= 'test'
...
... lasse ich per Schleife alle Elemente abfüllen.
Nur wird natürlich in der zweiten Zeile, also _contact.feld[i], ein Fehler generiert, weil _contact die Eigenschaft "feld[i]" logischerweise nicht besitzt. Darum möchte ich, dass "feld[i]" sich sozusagen durch seinen Wert ersetzt, sodass die Zeile dann halt, je nach Schleifendurchlauf _contact.FirstName, _contact.LastName etc. aussieht.

Wieso ich das überhaupt per Schleife lösen will: Ich kann nicht hardkodiert jede Zeile einzeln schreiben da im Model beliebige Felder mit ihren dazugehörigen Outlookfelder definiert werden können.

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:21 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