Du könntest die Property als Variant deklarieren und dann im Setter den Wert zerlegen.
Das hat natürlich den Nachteil, dass man auch völligen Quatsch übergeben könnte. In dem Fall würde ich einfach eine Exception auslösen.
Der weitere Nachteil ist, dass Du die Nummer auch als Variant wieder zurückgeben musst im Getter.
Sö könnte das aussehen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| private FNummer: Integer; FKey: Char; public procedure SetNummer(Value: Variant); function GetNummer: Variant; published property Nummer: Variant read GetNummer write SetNummer; end; |
In SetNummer würdest Du den Wert nun ggf. zerlegen.
Die Lösung finde ich allerdings nicht sonderlich schön, weil sie nicht das macht, was man von einer Property erwartet.
Ich würde eine weitere Methode deklarieren, um den Wert zu übergeben:
Delphi-Quelltext
1: 2:
| published procedure WriteWert(AWert : Variant); |
Nun würde ich in WriteWert das Dingen zerlegen und FNummer und FKey füllen.
Zum Lesen würde ich dann 2 readonly-Properties erstellen:
Delphi-Quelltext
1: 2:
| property Nummer: Integer read FNummer; property Key : String Read FKey; |
Nun wäre das sauber getrennt, in den Properties wird mit den richtigen Datentypen gearbeitet.