Bonjour,
je suis confronté à un problème depuis quelques jours concernant l'utilisation d'une "bibliothèque de type" importée via 'Importer un composant' (Delphi Xe).
Dans l'unité (_TLB) importée se trouve une "property" :
c'est via cette propriété que l'on peut configurer tout une liste de paramètres. Certains sont des Boolean, d'autre des Integer ou single et cela fonctionne sans aucun probleme ; la convertion des types delphi (integer, single, ...) via OleVariant se fait "automatiquement"
Code : Sélectionner tout - Visualiser dans une fenêtre à part property PropertyValue[PropId: PropId]: OleVariant read Get_PropertyValue write Set_PropertyValue;
Par contre un paramètre de la librairie requiert une valeur de type "Record" :
(le type rectangle se trouvant bien définit dans le fichier _TLB importé).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Rectangle = record Left: Smallint; Top: Smallint; Width: Smallint; Height: Smallint; end;
et dans ce cas je n'arrive pas à "passer" ce type de paramètre, le code suivant :
donne une erreur de compilation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 var R : Rectangle ; begin R.Left := 100 ; R.Top := 100 ; R.Width := 320 ; R.Height := 200 ; Device.PropertyValue[ PROPID_GRAB_USER_ROI_RECT_I ] := R ; end;
E2010 Type incompatibles : "OleVariant" et "rectangle"
d'un autre côté si je "passe" une variable d'un type accepté (integer) à la compilation, c'est alors à l'exécution qu'u message apparait :
Le projet ... exe a déclebcé la classe d'exception EOleException avec le message "type mismatch. expected Rectangle for property GRAB_USER_ROI_RECT_I" .
Merci de votre aide.
Partager