Hallo Jürgen,
Zitat von
bernau:
Zuerst eine Anmerkung. Klassen würde ich immer mit einem T beginnen. Also "TStringEdit = class(..." und nicht "StringEdit = class(..."
Unter NET ist das (leider) nicht so.
Zitat von
bernau:
Ich habe noch kein .Net-Programm geschrieben, aber muss du nicht auch hier die Klasse instanzieren?
Delphi-Quellcode:
var
aStringedit:TStringEdit;
begin
aStringedit:=TStringEdit.create;
Und dann auf die Instanz zugreifen.
str := aStringEdit.get_FDefText;
So ist es. Aber ich nehme an, dass Du (Jürgen) schon beim Kompilieren hängen geblieben bist und nicht erst zur Laufzeit abstürzst.
Denn der eigentliche Fehler liegt im
Modifizierer von Get/Set. Diese sind immer
private; und der
Zugriff auf den Inhalt erfolgt durch die
Eigenschaft (ich habe Deinen Quelltext kopiert und nur die Änderungen registriert::
Delphi-Quellcode:
type
StringEdit = class(System.Windows.Forms.TextBox)
// usw.
private
{ Private-Deklarationen }
FDefText : string;
function get_FDefText: System.string; // verschoben
procedure set_FDefText(Value: System.string); // verschoben
public
constructor Create;
published
[DefaultValue('DefText')]
property DefText : string read get_FDefText write set_FDefText;
end;
// der Zugriff erfolgt dann direkt:
se := StringEdit.Create;
str := se.DefText; // dafür sind die Eigenschaften schließlich da!
Viel Erfolg! Jürgen