FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» KGF_dll - nouvelles versions
par pascal10000 Aujourd'hui à 13:15

» Casse-tête : Echanger les positions des cavaliers
par jean_debord Aujourd'hui à 10:21

» demande pour recuperer un text speciale
par silverman Hier à 23:00

» Amélioration de la commande HINT
par papydall Mer 19 Juil 2017 - 3:30

» TEST SUR SHAPE
par papydall Mer 19 Juil 2017 - 1:17

» Un challenge à relever
par papydall Mar 18 Juil 2017 - 21:25

» Astuce : Indenter plusieurs lignes de code à la fois
par papydall Mar 18 Juil 2017 - 1:32

» Suggestion pour le forum
par papydall Lun 17 Juil 2017 - 20:28

» Truver les handles des onglets de Panoramic Editor
par Klaus Lun 17 Juil 2017 - 18:20

» Synedit_Editor - nouvelles versions
par Klaus Lun 17 Juil 2017 - 13:46

» Détermine si oui ou non un objet est PARENT d'un autre objet
par Klaus Dim 16 Juil 2017 - 11:58

» Une autre façon de terminer une application.
par papydall Dim 16 Juil 2017 - 3:53

» Déterminer le Handle de l’objet ayant le focus
par papydall Dim 16 Juil 2017 - 3:15

» Déterminer le HANDLE du Bureau
par papydall Dim 16 Juil 2017 - 1:59

» Généralisation de a fonction OBJECT_INTERNAL
par Klaus Dim 16 Juil 2017 - 1:10

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Juillet 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
31      
CalendrierCalendrier

Partagez | 
 

 Nouvelle version de KGF_SUB.bas

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Klaus

avatar

Nombre de messages : 10061
Age : 68
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Nouvelle version de KGF_SUB.bas   Dim 10 Mar 2013 - 1:04

J'ai mis en place une nouvelle version de KGF_SUB.bas.

KGF.dll reste inchangé.

J'ai ajouté une procédure select_record(n%). On peut maintenant définir plusieurs enregistrements (jusqu'à 100 définitions) dans un même programme, et sélectionner une définition particulière qui deviendra la définition de l'enregistrement "actuel". Tout cela pour les 4 procédures suivantes:
CopyBinaryStringToRecord CopyRecordToBinaryString ReadBinaryFileRecord WriteBinaryFileRecord
ainsi que pour les fonctions DLL correspondantes. Ces fonctions et procédures utilisent TOUJOURS la définition de l'enregistrement "actuel", qui est systématiquement le dernier défini (chronologiquement). Pour utiliser une autre définition, on a maintenant cette procédure select_record(n%) qui sélectionne l'enregistrement n% (1, 2, ...).

Voici une petite démo:
Code:
' demo_enregistrements_multiples.bas

' Ce programme montre comment on peut utiliser simultanément
' de multiples définitions d'enregistrements.
'
' Les procéduires define_record() et build_record gèrent une
' table de tous les enregistrements définis. Et la procédure
' select_record() en choisit une pour la rendra "actuelle" pour
' les autres procédures utilisant la définition d'un enregistrement.
' Ce sont:
'    CopyBinaryStringToRecord    CopyRecordToBinaryString
'    ReadBinaryFileRecord        WriteBinaryFileRecord
' Ces 4 procédures utilisent la définition "actuelle" de l'enregistrement,
' telle qu'elle est créée par la séquence:
'    define_record()
'    add_xxx_field()
'    ...
'    build_record()
' La procédure select_record(n%) permet de sélectionner l'enregistrement
' défini en n-ième position, et installe tout pour que cet enregistrement
' devienne l'enregistrement "actuel".

' définir les variables pour les champs
dim champ_i4%, champ_i2%, champ_i1%, champ_v, champ_s60$
champ_s60$ = string$(60," ")

memo 1 : top 1,10 : left 1,10 : width 1,400 : height 1,400
  font_name 1,"Courier" : bar_vertical 1
 
KGF_initialize("KGF.dll")

' enregistrement 1            : champ_i4%, champ_v  = 12 octets
define_record(2)
add_integer_field(adr(champ_i4%))
add_float_field(adr(champ_v))
build_record()

' enregistrement 2            : champ_i4%, champ_i2., champ_i1% = 7 octets
define_record(3)
add_integer_field(adr(champ_i4%))
add_word_field(adr(champ_i2%))
add_byte_field(adr(champ_i1%))
build_record()

' enregistrement 3            : champ_i1%, champ_s60$ = 61 octets
define_record(2)
add_byte_field(adr(champ_i1%))
add_string_field(adr(champ_s60$),60)
build_record()

afficher_record_actuel("Après les 3 créations")

select_record(1)
afficher_record_actuel("Sélection enregistrement 1")

select_record(2)
afficher_record_actuel("Sélection enregistrement 2")

select_record(3)
afficher_record_actuel("Sélection enregistrement 3")

end

sub afficher_record_actuel(t$)
  item_add 1,t$
  item_add 1,"Enregistrement actuel = " + str$(record_actuel%)
  item_add 1,"  Nombre de champs    = " + str$(record%(0,0))
  item_add 1,"  Longueur totale    = " + str$(record%(0,1))
  item_add 1,"  Adresse de base    = " + str$(record%(0,2))
  item_add 1,""
end_sub


#INCLUDE "KGF_SUB.bas"

P.S. Cette démo montre parfaitement le changement des adresses des variables au cours du programme. La valeur affichée à la ligne "Adresse de base" est adr(NUMBER_CLICK) au moment de la création d'une définition. Et clairement, cette valeur n'est pas immuable !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
 
Nouvelle version de KGF_SUB.bas
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» [résolu]Nouvelle version: fichier .bat
» Roboform, Nouvelle version
» Problème: pourquoi Base C. crée t-il une nouvelle version à chaque chargement de fichier .gpx
» La nouvelle version du site forumactif.com est disponible!
» Nouvelle version de Garmin Express (3.6.2 pour Mac)-Resolu

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: