Einzelnen Beitrag anzeigen

Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#4

Re: Problem mit Zugriff auf Property

  Alt 26. Sep 2006, 10:01
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
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat