Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.491 Beiträge
 
Delphi 7 Professional
 
#14

AW: Ausführen einer Methode bei MethodAddress

  Alt 5. Feb 2024, 01:30
weder ... noch prüfst Du, ob aComp überhaupt vom Typ TGraphicControl ist.
Doch doch.

Wenn es Keines ist, dann gibt es eine "passende" Exception, denn (acomp as TGraphicControl) .
Deshalb prüfe ich mit if Assigend(aComp)
Aber hier TGraphicControl(acomp) würde es nicht geprüft.
deshalb prüfe ich mit and (aComp is TGraphicControl)
Achtung, IS und AS haben beim NIL einen kleinen UInterschied.

IS sagt False, wenn es NIL ist, also wenn es nicht "dieser Typ" ist.
AS dagegen läßt NIL durch, da es nur püpft, ob es der richtige Typ ist ... und NIL ist nicht ein "falscher Typ", da es nichts ist.
und mit dem anschließenden then TGraphicControl(acomp).Height := 200; sollte die Zuweisung auf height erst dann erfolgen, wenn acomp sowohl etwas zugewiesen wurde, also nicht Nil ist, dieses Etwas vom Typ TGraphicControl ist und damit über das Attribut Height von TGraphicControl geerbt haben sollte. Soweit ich das sehe, sollten die von Dir genannten Bedingungen alle (ohne Exception) geprüft und vor dem Zuweisen von 200 auf das Attribut Height erfüllt sein. Also dürfte auch
Dann kannst du darauf casten
erfüllt sein.
  Mit Zitat antworten Zitat