Hallo zusammen,
ich bin da letztens über ein für mich recht unerklärliches Phänomen gestoßen.
Folgender Sourcecode unter D7 umreißt das Problem und sollte meines erachtens nicht laufen...
Das Prog berechnet aber erfolgreich den Wert und funzt tadellos.
Erst beim beenden des Programmes bekommt man einen Fehler.
Kann mir einer erklären:
a: warum funktioniert das ohne sofortigen Laufzeitfehler beim Klassenzugriff?
b: warum erst die verzögerte Fehlermeldung bei Programmende?
Danke,
MtZielscheibe.
PS.: Übrigens, leitet man nicht von TObject, sondern von TComponent ab, bekommt man sofort eine Fehlermeldung.
------------------------------
(Generiert in einem Projekt mit einem Editfeld und einem Button auf der Form)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29:
| Type TSMS = class (TObject) private FmyVar : Integer; public procedure test; published property myVar: Integer read FmyVar write FmyVar default 0; end;
implementation
procedure TSMS.test; begin myVar:=myVar*10; end;
procedure TForm1.Button1Click(Sender: TObject); Var a:TSMS; begin a.myVar:=10; a.test; edit1.text:=inttostr(a.myVar);
end; |
Moderiert von
Udontknow: Code- durch Delphi-Tags ersetzt.