[TAILBITE] Enumerations & Constantes globales

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Progi1984
Messages : 2659
Inscription : mar. 14/déc./2004 13:56
Localisation : France > Rennes
Contact :

[TAILBITE] Enumerations & Constantes globales

Message 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é !" ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message 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
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

Si tu ne veux pas créer de resident tu peux mettre les constantes en dehors des procédures ça marche pareil ;)
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Oui, c'est plus simple :mrgreen:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Et si un fichier comporte des includefile comment doit on procéder?
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message 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
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message 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
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Message 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.
Avatar de l’utilisateur
Droopy
Messages : 1151
Inscription : lun. 19/juil./2004 22:31

Message par Droopy »

Merci pour l'info gnozal :wink:
Répondre