Gambas Documentation
Aperçu du Langage
À traduire
Code Snippets
Comment faire ...
Compilation et installation
Composants
Controls pictures
Derniers changements
Dépôt d'applications
Documentation de l'Environnement de développement
Documentation des développeurs
Comment programmer des composants en C/C++
Comment programmer des composants en Gambas
Composants Additionnels de Gambas
L'interface de programmation Gambas
Name
ARG
BEGIN_METHOD
BEGIN_METHOD_VOID
BEGIN_PROPERTY
DECLARE_EVENT
DECLARE_METHOD
DECLARE_PROPERTY
END_METHOD
END_PROPERTY
GB.Add
GB.AddString
GB.Alloc
GB.Application.Name
GB.Application.Path
GB.Application.Startup
GB.Application.Title
GB.Application.Version
GB.Array.Add
GB.Array.Count
GB.Array.Get
GB.Array.New
GB.Attach
GB.AutoCreate
GB.Call
GB.CanRaise
GB.CheckObject
GB.CheckPost
GB.Collection.Count
GB.Collection.Get
GB.Collection.New
GB.Collection.Set
GB.Conv
GB.ConvString
GB.Count
GB.CurrentComponent
GB.Detach
GB.Error
GB.ExistClass
GB.ExistFile
GB.ExtendString
GB.FileName
GB.FindClass
GB.Free
GB.FreeArray
GB.FreeString
GB.GetClass
GB.GetClassName
GB.GetEnum
GB.GetEvent
GB.GetFunction
GB.GetInterface
GB.GetTempDir
GB.GetTime
GB.GetUnknown
GB.HashTable.Add
GB.HashTable.Count
GB.HashTable.Enum
GB.HashTable.Free
GB.HashTable.Get
GB.HashTable.New
GB.HashTable.Remove
GB.Hook
GB.Insert
GB.Is
GB.IsProperty
GB.ListEnum
GB.LoadComponent
GB.LoadFile
GB.MakeDate
GB.MakeDateFromTime
GB.MatchString
GB.New
GB.NewArray
GB.NewString
GB.NextEnum
GB.NParam
GB.NumberFromString
GB.NumberToString
GB.Post
GB.Propagate
GB.Push
GB.Raise
GB.RaiseTimer
GB.RealFileName
GB.Realloc
GB.Ref
GB.ReleaseFile
GB.Remove
GB.ReturnBoolean
GB.ReturnConstString
GB.ReturnConstZeroString
GB.ReturnDate
GB.ReturnFloat
GB.ReturnInteger
GB.ReturnLong
GB.ReturnNewString
GB.ReturnNewZeroString
GB.ReturnNull
GB.ReturnObject
GB.ReturnPtr
GB.ReturnString
GB.SplitDate
GB.StopAllEnum
GB.StopEnum
GB.Store
GB.StoreObject
GB.StoreString
GB.StoreVariant
GB.strcasecmp
GB.Stream.Init
GB.StringLength
GB.strncasecmp
GB.SubstAdd
GB.SubstString
GB.System.Charset
GB.System.Language
GB.tolower
GB.toupper
GB.ToZeroString
GB.Unref
GB.UnRefKeep
GB.Watch
GB_ARRAY
GB_AUTO_CREATABLE
GB_BASE
GB_BOOLEAN
GB_CLASS
GB_COLLECTION
GB_COMP_BINARY
GB_COMP_TEXT
GB_CONSTANT
GB_DATE
GB_DATE_SERIAL
GB_DECLARE
GB_DESC
GB_END_DECLARE
GB_ERR_ARG
GB_ERR_BOUND
GB_ERR_NPROPERTY
GB_ERR_NSYMBOL
GB_ERR_TYPE
GB_EVENT
GB_FLOAT
GB_FUNCTION
GB_HASHTABLE
GB_HASHTABLE_ENUM_FUNC
GB_HOOK_ERROR
GB_HOOK_LANG
GB_HOOK_LOOP
GB_HOOK_MAIN
GB_HOOK_POST
GB_HOOK_QUIT
GB_HOOK_TIMER
GB_HOOK_WAIT
GB_HOOK_WATCH
GB_INHERITS
GB_INTEGER
GB_LONG
GB_METHOD
GB_NB_LOCAL
GB_NB_READ_ALL
GB_NB_READ_FLOAT
GB_NB_READ_HEX_BIN
GB_NB_READ_INT_LONG
GB_NB_READ_INTEGER
GB_NB_READ_LONG
GB_NOT_CREATABLE
GB_OBJECT
GB_PROPERTY
GB_PROPERTY_READ
GB_PROPERTY_SELF
GB_STATIC_METHOD
GB_STATIC_PROPERTY
GB_STATIC_PROPERTY_READ
GB_STATIC_PROPERTY_SELF
GB_STREAM
GB_STREAM_DESC
GB_STRING
GB_SUBST_CALLBACK
GB_T_BOOLEAN
GB_T_BYTE
GB_T_CSTRING
GB_T_DATE
GB_T_FLOAT
GB_T_INTEGER
GB_T_LONG
GB_T_NULL
GB_T_OBJECT
GB_T_SHORT
GB_T_SINGLE
GB_T_STRING
GB_T_VARIANT
GB_T_VOID
GB_TIMER
GB_TYPE
GB_VALUE
GB_VARIANT
GB_VIRTUAL_CLASS
GB_WATCH_CALLBACK
GB_WATCH_NONE
GB_WATCH_READ
GB_WATCH_READ_WRITE
GB_WATCH_WRITE
LENGTH
MISSING
PLENGTH
PROP
PSTRING
READ_PROPERTY
RETURN_SELF
STRING
VARG
VARGOPT
VPROP
Les détails de l'implémentation de gb.qt
Documents
Indenter
Index de tous les Documents
Index du langage
Lexique
LISEZ-MOI
Manuel du wiki
Messages d'erreur
Tutoriels
Wiki License

GB.Post

void GB.Post ( void (*func)() , long param )

Poste une routine de rappel (callback) qui sera appelée lors de la prochaine boucle d’évènement.

  • func est l’adresse du rappel.

  • param est un entier long qui sera passé au rappel.

Utilisez cette fonction si vous ne pouvez pas exécuter une partie de code immédiatement.

Par exemple, il est parfois dangereux de déclencher un évènement immédiatement, Car le gestionnaire d’évènement peut indirectement libérer une partie de mémoire utilisée par une fonction située plus haut dans la pile. Mieux vaut parfois déclencher l’évènement quand vous êtes au sommet de la boucle d’évènement.

Si vous voulez utiliser un objet dans le rappel, vous devez le référencer avec GB.Ref, pour éviter que l’interpréteur ne le détruise avant que le rappel ne soit invoqué. Et n’oubliez pas d’appeler GB.Unref dans la routine post une fois que vous en avez terminé avec l’objet!

Par exemple, GB.Post est utilisé pour déclencher les évènements Click quand vous sélectionnez un menu, parce que déclencher l’évènement immédiatement dans le connecteur QT crashe l’interpréteur!

Cette fonction appelle le connecteur post de l’interpréteur pour qu’il sache qu’une nouvelle routine post a été enregistrée.

Exemples

// Voilà comment les évènements du menu sont envoyés au composant QT

static void send_menu_event(CMENU *menu)
{
  GB.Raise(menu, EVENT_Click, 0);
  GB.Unref((void **)&menu);
} 

void CMenu::activated(int id)
{
  CMENU *menu = ... ;

  // Ne pas déclencher immédiatement l’évènement
  // GB.Raise(menu, EVENT_Click, NULL);

  GB.Ref(menu);
  GB.Post((void (*)())send_menu_event, (long)menu);
} 

Voir aussi