====== Transtypage ====== ===== Utiliser AS ou TMaClasse(xxxx) ===== ==== Transtypage de la forme : TObject(MonObject) ==== * **Typecast sans vérification** : Convertit directement `MonObject` en `TObject` sans vérifier son type réel. * **Pas de vérification à l'exécution** : A Utiliser lorsque vous êtes certain que `MonObject` est un `TObject`. * **Risques** : Peut entraîner des comportements indéfinis ou des erreurs si `MonObject` n'est pas un `TObject`. ==== Transtypage de la forme : (MonObject as TObject)==== * **Typecast avec vérification** : Tente de convertir `MonObject` en `TObject` et vérifie le type à l'exécution. * **Vérification à l'exécution** : Lève une exception `EInvalidCast` si `MonObject` n'est pas un `TObject`. * **Sécurité** : Utilisé lorsque vous n'êtes pas sûr que `MonObject` est un `TObject`, pour éviter des erreurs non gérées. ==== Exemple ==== var MyObject: TObject; begin // Sans vérification MyObject := TObject(SomeOtherObject); // Avec vérification try MyObject := SomeOtherObject as TObject; except on E: EInvalidCast do ShowMessage('The object cannot be cast to TObject'); end; end; ==== Utilisation ==== * **`TObject(MonObject)`** : Plus rapide, sans vérification, utilisé lorsque le type est certain. * **`(MonObject as TObject)`** : Plus sûr, avec vérification, utilisé lorsque le type est incertain.