Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Boolean

9 réponses
Avatar
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
===================================================

9 réponses

Avatar
LE TROLL
Bonjour,

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" <{EnlevezMoiPourRepondre} a écrit
dans le message de news:%
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}

Localisation/location: www.mappy.com/PlanPerso/vedex/0
================================================== >
Avatar
Frédéric Van der Beken
Je veux la bonne manip. pour crer un type boolean dans Vb6 (je sais, il
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" <le a écrit dans le message de news:

Bonjour,

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" <{EnlevezMoiPourRepondre} a
écrit dans le message de news:%
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}

Localisation/location: www.mappy.com/PlanPerso/vedex/0
================================================== >>



Avatar
Jean-marc
Frédéric Van der Beken wrote:
Bonjour,



Hello,

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)



Logique.

ou l'équivallent d'un integer (short en clarion 2 octets).



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

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).



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_' ;
Avatar
Frédéric Van der Beken
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 ...)

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
===================================================
Avatar
Jean-marc
Frédéric Van der Beken wrote:
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 ...)

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 ...)



ok, c'est clair.

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



OK.

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.



vu.

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.



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_' ;
Avatar
Frédéric Van der Beken
J'avais fait à une époque un ocx qui utilisait le mscom32.ocx. J'avais mis
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" a écrit dans le message de news:
4b91310b$0$2884$
Frédéric Van der Beken wrote:
Bonjour,



Hello,

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)



Logique.

ou l'équivallent d'un integer (short en clarion 2 octets).



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

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).



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_' ;




Avatar
Frédéric Van der Beken
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 ...

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
===================================================
Avatar
Jean-marc
Frédéric Van der Beken wrote:

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 ?



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_' ;
Avatar
Jean-marc
Frédéric Van der Beken wrote:
J'avais fait à une époque un ocx qui utilisait le mscom32.ocx.
J'avais mis 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 ...



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_' ;