Thema: Delphi Typcasting Delphi

Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Typcasting Delphi

  Alt 4. Jan 2013, 14:57
Nein so ist das nicht.

Bei einem reinen HardCast wird keine Exception geworfen, erst wenn ein Zugriff erfolgt.
Delphi-Quellcode:
var
  LEdit : TEdit;
begin
  Instance := TObject.Create;
  ...
  LEdit := TEdit( Instance );
  ...
  LEdit.Text := 'foo'; // hier Exception
  ...
end;
Bei einem SoftCast erfolgt die Exception direkt beim Casten.
Delphi-Quellcode:
var
  LEdit : TEdit;
begin
  Instance := TObject.Create;
  ...
  LEdit := Instance as TEdit; // hier Exception
  ...
  LEdit.Text := 'foo';
  ...
end;
Will man eine Exception vermeiden, dann muss immer vor dem Casten mit is geprüft werden.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat