![]() |
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:
Nun habe ich die Feldbezeichner, also FirstName und LastName, gelesen aus dem Model, als String vor mir liegend.
_contact.FirstName:= 'Peter';
_contact.LastName:= 'Meier'; Wie nun kann ich die Stringfelder als Eigenschaft des _contact-Objektes definieren? Also als Beispiel sozusagen folgendermassen:
Delphi-Quellcode:
Nun wird natürlich auf dem Objekt _contact nach der Eigenschaft "feld" gesucht, statt nach "FirstName". Wie kann ich dies umgehen?
feld:= 'FirstName';
_contact.feld:= 'Peter'; Herzlichen Dank RedOne |
Re: Variable als Eigenschaft brauchen
Ich steig da nicht ganz durch: was ist "feld" und was ist "_contact"?
|
Re: Variable als Eigenschaft brauchen
Scheint ein OLE-Objekt zu sein.
|
Re: Variable als Eigenschaft brauchen
Hallo,
suchst Du vielleicht folgenden Lösungsansatz:
Delphi-Quellcode:
if feld = 'FirstName' then
_contact.feld:= 'Peter' else .... MfG Klaus |
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:
Damit ich nicht jede Eigenschaft des OLE-Objektes _contact einzeln abfüllen muss...
for i:= 0 to feld.count -1 do begin
_contact.feld[i]:= 'test'; end
Delphi-Quellcode:
... lasse ich per Schleife alle Elemente abfüllen.
_contact.FirstName:= 'test';
_contact.LastName:= 'test'; _contact.CompanyName:= 'test' ... 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 02:29 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