Boolean
Le
Frédéric Van der Beken

Bonjour,
J'ai un ocx que je pilote en VB6. C'est ok en VB6. Je l'utilise en Clarion
de chez Topspeed. Ce language ne possède pas le type boolean (2 octets en
vb). L'ocx ne me laisse pas la possibilité d'utiliser ne serait ce qu'un
byte (1 octet en clarion) ou l'équivallent d'un integer (short en clarion 2
octets). Dans d'autres cas, il est plus permissif au type.
Pouvez vous m'indiquer les manip. en VB6 pour créer un type de variable à
partir des API (je crois qu'il y a du VariantInit). Je testerais en VB6 et
reproduirait ensuite en Clarion afin de créer le nouveau type de variable
dans Clarion.
Merci
--
Frédéric Van der Beken
VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}support@vedex.com
Localisation/location: www.mappy.com/PlanPerso/vedex/0
J'ai un ocx que je pilote en VB6. C'est ok en VB6. Je l'utilise en Clarion
de chez Topspeed. Ce language ne possède pas le type boolean (2 octets en
vb). L'ocx ne me laisse pas la possibilité d'utiliser ne serait ce qu'un
byte (1 octet en clarion) ou l'équivallent d'un integer (short en clarion 2
octets). Dans d'autres cas, il est plus permissif au type.
Pouvez vous m'indiquer les manip. en VB6 pour créer un type de variable à
partir des API (je crois qu'il y a du VariantInit). Je testerais en VB6 et
reproduirait ensuite en Clarion afin de créer le nouveau type de variable
dans Clarion.
Merci
--
Frédéric Van der Beken
VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}support@vedex.com
Localisation/location: www.mappy.com/PlanPerso/vedex/0
Je ne suis pas certain de tout comprendre car je ne connais ni ton API
ni les logiciels nommés (t'es certains de faire du VB ?), toutefois si en
gros tu veux savoir qu'elle type de variable prendre en VB pour faire un
booléen, ben n'importe quel type fait l'affaire à défaut, tu peux même dans
une chaîne mettre "vrai" et "faux", ou encore utiliser une variable
d'environnement, ou encore un fichier, ou un registre...
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.
"Frédéric Van der Beken" dans le message de news:%
existe tout fait par "dim x as boolean") à partir des api windows (là où
tous les languages créent les types) afin de tester cette fameuse variable
boolean (mais créée par API) dans VB6 avec l'ocx et ensuite utiliser le code
et les API qui ont permis de créer le fameux boolean dans le language
Clarion qui n'en possède pas de base.
C'est mieux comme ça ?
:)
--
================================================== Frédéric Van der Beken
VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}
Localisation/location: www.mappy.com/PlanPerso/vedex/0
================================================== "LE TROLL"
Hello,
Logique.
Je ne vois pas pourquoi. Ca doit etre interopérable, ou alors c'est un
manquement dans Clarion.
J'ai trouvé un mini tutorial ocx/clarion ici, peut être ca peut être
utile:
http://www.clarion.free.fr/public_html/trucs/ocx/didier01en.html
Voici la doc des API pour la création/manipulation de variant:
http://msdn.microsoft.com/en-us/library/ms221673.aspx
Je suis curieux d'une chose: est ce que cela marche d'appeler l'ocx
depuis clarion en mettant une valeur "en dur" pour l'argument
booléen (par exemple 0) ? Si oui, alors la solution est toute trouvée
(moche, mais toute trouvée ...)
Cordialement,
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
depuis clarion en mettant une valeur "en dur" pour l'argument
booléen (par exemple 0) ? Si oui, alors la solution est toute trouvée
(moche, mais toute trouvée ...)
dans le sens où j'envoie, l'ocx accepte le 0 ou 1 envoyé depuis Clarion.
dans le sens où je reçois: je dois mettre un boolean car l'ocx ne veut
envoyer que dans un boolean (et une variable en dur ...)
Clarion ne fait que transmettre à l'ocx avec sa syntaxe propre. Il transmet
une chaine.
en Vb: Retour = OCX.Api(Number, Param)
En Clarion Retour = ?OCX{'Api(Number, Param)'} // les ' en Clarion sont des
" en VB
Mettre O ou 1 à la place de Param fonctionne en VB et Clarion si c'est une
variable sortante, Pour une entrante: non
Quand je dis que l'ocx est permissif: c'est que en VB même, il ya des cas où
il accepte un long pour un boolean et j'ai même rencontré un cas où il a
accepté un string pour un long. Pas très blindé tout ça mais c'est une dll
de Chine.
Le problème est que d'une version de dll à l'autre, les cas varient. Plus ou
moins permissif suivant le gars qui l'écrit. Dans la dernière, j'ai
maintenant une multitude de fonction qui ne passent plus car il faut un
boolean qui n'existe pas en Clarion. Avant je mettais un short (integer) ou
long sans problême.
--
================================================== Frédéric Van der Beken
VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}
Localisation/location: www.mappy.com/PlanPerso/vedex/0
===================================================
ok, c'est clair.
OK.
vu.
OK. Il te reste à trouver ce que le gars a bien pu mettre comme type
pour implémenter son "boolean". Il n'y a pas non plus 5000 choix, hein ?
c'est 1, 2, 4 ou 8 bytes. Je n'ose pas imaginer une string, quoique ...
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
mon protocole dans l'ocx et ainsi j'avais ressorti uniquement l'ouverture et
fermeture du port et l'envoi et la réception. Mon ocx se chargeant de
vérifier les checks sums, longueur attendue, numéro de terminal, etc .. ou
autre problème.
Il suffirait donc que je fasse l'ocx de l'ocx en VB. Ensuite Clarion
communique avec l'ocx2 et envoie ses short comme demandé, l'ocx2 récupère
dans un integer (short en Clarion), converti le short en boolean (x = y et x
est un boolean) et envoie, reçoit à l'ocx1.
Quand ils me balanceront une énième dll qui veut autre chose que la
précédente, je n'aurais que l'ocx2 à modifier et je garde le côté constant
dans Clarion (qui n'a pas une très bonne gestion des ocx et encore moins de
leurs événements).
J'essaye tout ça ...
--
================================================== Frédéric Van der Beken
VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}
Localisation/location: www.mappy.com/PlanPerso/vedex/0
================================================== "Jean-marc" 4b91310b$0$2884$
pour implémenter son "boolean". Il n'y a pas non plus 5000 choix, hein ?
c'est 1, 2, 4 ou 8 bytes. Je n'ose pas imaginer une string, quoique ...
en Clarion: j'ai essayé le byte(1), le string(1), string(2),
short(2)=integer, long(4).
en VB: j'ai essayé byte, integer, et long et il ne prend que boolean
l'ocx serait en C, ça vous cause ?
--
================================================== Frédéric Van der Beken
VEDEX
8, rue de la Féculerie
Z.I. les Cailloux
45150 JARGEAU
FRANCE
Depuis la France Tel: 02 38 46 11 65 Fax: 02 38 46 19 35
Since the foreigner Phone: +33 2 38 46 11 65 Fax: +33 2 38 46 19 35
Sites/website: www.vedex.com www.pointeuse.fr www.pointeuses.net
www.nadsoftware.com
E-mail: {EnlevezMoiPourRepondre}
Localisation/location: www.mappy.com/PlanPerso/vedex/0
===================================================
Ouaip.
Si c'est en C, alors les types possibles sont:
char (1 byte), short (2 bytes), int (4 bytes), long (4 bytes), double (8
bytes).
Personne n'utiliserait un double pour stocker un booléen,
mais ça semble le seul truc que tu n'ais pas essayé.
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Une solution classique et élégante (wrapper) : j'approuve violemment :-)
--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;