Page 1 sur 1

[TAILBITE] Enumerations & Constantes globales

Publié : mar. 11/juil./2006 13:12
par Progi1984
Bonjour,

j'ai une énumération et des constantes dans ma variables

Code : Tout sélectionner

Procedure MaLib_Init()
   Enumeration
     #Val_0
     #Val_1
     #Val_2
     #Val_3
     #Val_4
   EndEnumeration
   #Constante_0=-900
EndProcedure
Je compile cette lib avec Taiblite

Comment pourrasi je à partir de mon programme lambda faire
un debug #Constante_0 et que cela affiche -900 au lieu qu'il me dise "La variable #Constante_0 n'est pas déclaré !" ?

Publié : mar. 11/juil./2006 13:41
par Anonyme2
Tu doit faire un fichier résident avec tailbite ou les commandes shell du compilateur PB.

Ton fichier résident ne doit pas comporter de procédures.

Il peut contenir

- Des constantes avec la réserve suivante, toutes les constantes float sont codées dans le résident en double précision (mais je pense que PB fait la conversion lors de l'assignation à une variable simple précision :D )

- Des structures

- Des Interfaces

- Des macros

- Des prototypes

ces 2 derniers type n'existent que depuis PB 4

Si tu créé le résident avec PB 4, il ne sera pas compatible avec les versions antérieures alors que les anciens résidents (version 1 à 3 par exemple) sont compatible avec la derniere mouture du compilateur (ver 4)

Si tu fait le résident avec PB 4 et que tu le modifies, fait bien attention aux commandes shell, PB ajoutant les constantes (Fred a expliqué ça sur le forum anglais pour Gnozal), bref, le plus simple est de supprimer au préalable l'ancien résident et de le recréer, il sera Ok

Publié : mar. 11/juil./2006 14:04
par Gillou
Si tu ne veux pas créer de resident tu peux mettre les constantes en dehors des procédures ça marche pareil ;)

Publié : mar. 11/juil./2006 14:52
par Anonyme2
Oui, c'est plus simple :mrgreen:

Publié : lun. 07/août/2006 23:15
par nico
Et si un fichier comporte des includefile comment doit on procéder?

Publié : mar. 08/août/2006 0:52
par Guimauve
nico a écrit :Et si un fichier comporte des includefile comment doit on procéder?
Moi je procède toujours avec des Includefile.

Le source que je donne a TailBite pour créer soit un résident, soit une librairie ressemble à quelque chose du genre :

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Simple_Macro
; Fichier : Résident
; Version : 1.0.1
; Programmation = OK
; Programmé par : Guimauve
; Date : 16-04-2006
; Mise à jour : 24-07-2006
; Codé avec PureBasic V4.00
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

IncludePath "Simple_Macro"

IncludeFile "Macro_Looping_Scrolling.pb"
IncludeFile "Macro_RGBColor.pb"
IncludeFile "Macro_RandomMinMax.pb"

; <<<<<<<<<<<<<<<<<<<<<<<<
; <<<< FIN DU FICHIER <<<<
; <<<<<<<<<<<<<<<<<<<<<<<<
Et un fichier résident avec la définition des macros est créé.

Attention, il ne faut pas inclure des macros et des procédures dans le même fichier à compiler.

Les constantes, Structure et Macro sont compilés en fichier résident alors que les procédures sont compilés en fichier librairie. Je ne suis pas sûr mais s'il y a des constantes avec le code des procédures elles ne seront pas disponible dans le code du programme qui utilise la librairie.

A+
Guimauve

Publié : mar. 05/févr./2008 22:09
par Droopy

Code : Tout sélectionner

Macro Bip()
  beep_(700,250)
EndMacro
Ce code compilé avec TB ( option /resident ) me génère un .res
La fonction est utilisable avec PB mais n'apparais pas dans l'autocompletion de JaPBe.

1° Peut on faire apparaitre Bip() dans l'aucomplétion ?
2° Pourrais-t-on lui associer une aide quand on presse F1 ?

Merci

Publié : mer. 06/févr./2008 9:00
par gnozal
Droopy a écrit :

Code : Tout sélectionner

Macro Bip()
  beep_(700,250)
EndMacro
Ce code compilé avec TB ( option /resident ) me génère un .res
La fonction est utilisable avec PB mais n'apparais pas dans l'autocompletion de JaPBe.

1° Peut on faire apparaitre Bip() dans l'aucomplétion ?
2° Pourrais-t-on lui associer une aide quand on presse F1 ?

Merci
L'autocomplétion de jaPBe ne gère pas les macros prédéfinies dans les résidents, uniquement les constantes.
Comme l'équipe PB refuse de documenter le format des résidents, j'ai bricolé un code qui lit les résidents et ne retient que les constantes : cf procedure 'ExtractConstantsFromResidents()' dans Load_Save_Switch.pbi. Tu peux le compléter pour les macros si tu as le courage et modifier le reste du code pour ajouter l'autocomplétion des macros identifiées ...
Sinon, il y a un autre moyen de définir des procédures/macros pour l'autocomplétion dans jaPBe : il suffit de créer un fichier *.txt dans "\Definitions".
Par exemple : Droopy.txt

Code : Tout sélectionner

;info: Droopy
/Procedure
Bip() - Le bip de Droopy
Pas possible actuellement dans jaPBe si la fonction n'est pas dans une (user)library.

Publié : mer. 06/févr./2008 11:37
par Droopy
Merci pour l'info gnozal :wink: