Gratuliere!
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
tes := TExpandingRecord.Create( Self );
ExpandingComponent1.Property1.StringProp := 'mach mal das was ich will';
ExpandingComponent1.Property1 := tes; // erst bei dieser zeile springt eine meldung aus
end;
Das ist ja auch kein Wunder, der erste Zugriff ist ja nur ein Lesezugriff, da wird also nur der Getter angesprochen (der liefert dann die Instanz von TExpandingRecord zurück, von der dann der
Setter von TExpandingRecord.StringProp angezogen wird, welcher in dem Fall nur direkt die zugehörige Membervariable befüllt...) Da kann ja auch keine Meldung vom
Setter von TExpandingComponent.Property1 ausgegeben werden
Und beim zweiten Zugriff wird dann der "richtige" Setter angezogen und Deine Message ausgegeben.
"Tja ja, das Ausrufezeichen... Der virtuelle Spoiler des 21. Jahrhunderts, der Breitreifen für die Datenautobahn, die k3wle Sonnenbrille fürs Usenet.
" (Henning Richter)