Page 1 sur 1

Aide mémoire sur les types et opérateurs

Publié : lun. 29/déc./2025 20:42
par plabouro472
C'est juste pour retrouver les types à affecter aux variables.
J'utilise cet outil assez souvent et je pense qu'il pourra être utile à certain, alors je partage. :D

Code : Tout sélectionner


;*******************
; PB 6.22 *
; Windows 11 *


Titre .s = "Aide Mémoire-V20251229"

Macro MacroGadgetItem ( _a_ , _b_ , _c_ )
 AddGadgetItem ( ListIcon_Variables , -1 , _a_ + Chr(10) + _b_ + Chr(10) + _c_ )
EndMacro



Global Window_0

Global Option_Entier
Global Option_Relatif
Global Option_Flottant
Global Option_Chaine
Global Option_Logique
Global ListIcon_Variables
Global Button_Quitter
Global Text_1, Text_2, Text_3, Text_4, Text_5

Declare ButtonQuitterOnClick (EventType)
Declare OptionGadgetOnClik (EventType)

Procedure OpenWindow_0(x = 0, y = 0, width = 640, height = 230)
 Window_0 = OpenWindow ( #PB_Any , x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
 Option_Entier = OptionGadget ( #PB_Any , 10 , 40 , 70 , 20 , "Entier" )
 Option_Relatif = OptionGadget ( #PB_Any , 90 , 40 , 70 , 20 , "Relatif" )
 Option_Flottant = OptionGadget ( #PB_Any , 170 , 40 , 70 , 20 , "Flottant" )
 Option_Chaine = OptionGadget ( #PB_Any , 250 , 40 , 70 , 20 , "Chaine" )
 Option_Logique = OptionGadget ( #PB_Any , 330 , 40 , 70 , 20 , "Logique" )
 SetGadgetState ( Option_Entier , 1 )
 
 ListIcon_Variables = ListIconGadget ( #PB_Any , 10 , 70 , 620 , 150 , "Extension" , 90 , #PB_ListIcon_GridLines )
 AddGadgetColumn ( ListIcon_Variables , 1 , "Encombrement mémoire" , 180 )
 AddGadgetColumn ( ListIcon_Variables , 2 , "Plage de valeurs" , 320 )
 Button_Quitter = ButtonGadget ( #PB_Any , 530 , 10 , 100 , 20 , "Quitter" )
 
 Text_1 = TextGadget ( #PB_Any , 10 , 0 , 120 , 20 , "Bin : %10010001" )
 Text_2 = TextGadget ( #PB_Any , 140 , 0 , 120 , 20 , "Hex : $FE" )
 Text_3 = TextGadget ( #PB_Any , 260 , 0 , 250 , 20 , "* : Pointeur" )
 Text_4 = TextGadget ( #PB_Any , 10 , 20 , 250 , 20 , "@ : Adresse d'une Variable ou Procedure" )
 Text_5 = TextGadget ( #PB_Any , 260 , 20 , 250 , 20 , "? : Adresse d'un Label" )
EndProcedure

Procedure Window_0_Events(event)
 Select event
 Case #PB_Event_CloseWindow
 ProcedureReturn #False
 ;CaseEnd
 
 Case #PB_Event_Gadget
 Select EventGadget()
 Case Option_Entier
 OptionGadgetOnClik(EventType())
 ;CaseEnd
 Case Option_Relatif
 OptionGadgetOnClik(EventType())
 ;CaseEnd
 Case Option_Flottant
 OptionGadgetOnClik(EventType())
 ;CaseEnd
 Case Option_Chaine
 OptionGadgetOnClik(EventType())
 ;CaseEnd
 Case Option_Logique
 OptionGadgetOnClik(EventType())
 ;CaseEnd
 Case Button_Quitter
 ButtonQuitterOnClick(EventType())
 ;CaseEnd
 EndSelect
 ;CaseEnd
 EndSelect
 ProcedureReturn #True
EndProcedure


; *****************
; Les procédures d'initialisation de la ListIcon
Procedure InitTitresVariables()
 SetGadgetItemText( ListIcon_Variables , -1, "Extension" , 0 )
 SetGadgetItemText( ListIcon_Variables , -1, "Encombrement mémoire" , 1 )
 SetGadgetItemText( ListIcon_Variables , -1, "Plage de valeurs" , 2 )
EndProcedure
Procedure InitTitresLogique()
 SetGadgetItemText( ListIcon_Variables , -1, "Comparaison" , 0 )
 SetGadgetItemText( ListIcon_Variables , -1, "Binaire" , 1 )
 SetGadgetItemText( ListIcon_Variables , -1, "Description" , 2 )
EndProcedure

; *****************
OpenWindow_0()

; *****************
; Les procédures d'événements
Procedure ButtonQuitterOnClick ( EventType )
 End
EndProcedure
Procedure OptionGadgetOnClik ( EventType )
 If GetGadgetState ( Option_Entier )
 InitTitresVariables()
 ClearGadgetItems ( ListIcon_Variables )
 MacroGadgetItem ( ".a" , "1 octet" , "0 a 255" )
 MacroGadgetItem ( ".u" , "2 octet" , "0 à 65535" )
 MacroGadgetItem ( ".c" , "2 octet" , "0 à 65535" )
 
 ElseIf GetGadgetState ( Option_Relatif )
 InitTitresVariables()
 ClearGadgetItems ( ListIcon_Variables )
 MacroGadgetItem ( ".b" , "1 octet" , "-128 à +127" )
 MacroGadgetItem ( ".w" , "2 octet" , "-32768 à +32767" )
 MacroGadgetItem ( ".l" , "4 octet" , "-2147483648 à +2147483647" )
 MacroGadgetItem ( ".i" , "4 octet x86" , "-2147483648 à +2147483647" )
 MacroGadgetItem ( ".i" , "8 octet x64" , "-9223372036854775808 à +9223372036854775807" )
 MacroGadgetItem ( ".q" , "8 octet" , "-9223372036854775808 à +9223372036854775807" )
 
 ElseIf GetGadgetState ( Option_Flottant )
 InitTitresVariables()
 ClearGadgetItems ( ListIcon_Variables )
 MacroGadgetItem ( ".f" , "4 octets 06 Chiffres significatifs" , "±1.175494e-38 à ±3.402823e+38" )
 MacroGadgetItem ( ".d" , "8 octets 15 Chiffres significatifs" , "±2.2250738585072013e-308 à ±1.7976931348623157e+308" )
 
 ElseIf GetGadgetState ( Option_Chaine )
 InitTitresVariables()
 ClearGadgetItems ( ListIcon_Variables )
 MacroGadgetItem ( ".s" , "longueur de la chaine + 1" , "illimité" )
 MacroGadgetItem ( ".s{Lon}" , "longueur de la chaine" , "illimité" )
 
 ElseIf GetGadgetState ( Option_Logique )
 InitTitresLogique()
 ClearGadgetItems ( ListIcon_Variables )
 MacroGadgetItem ( "AND" , "&" , "ET logique" )
 MacroGadgetItem ( "OR" , "|" , "OU logique" )
 MacroGadgetItem ( "XOR" , "!" , "OU Exclusif" )
 MacroGadgetItem ( "NOT" , "~" , "Non logique" )
 MacroGadgetItem ( "" , ">>" , "Décalage binaire à droite" )
 MacroGadgetItem ( "" , "<<" , "Décalage binaire à gauche" )
 
 EndIf
 
EndProcedure


SetWindowTitle ( Window_0 , Titre ) 
OptionGadgetOnClik ( 0 )

; *****************
; La boucle principale
Repeat
 Evenement = WaitWindowEvent()
 Select EventWindow()
 Case Window_0
 Window_0_Events(Evenement)
 ;CaseEnd
 EndSelect
Until Evenement = #PB_Event_CloseWindow




Re: Aide mémoire sur les types et opérateurs

Publié : jeu. 01/janv./2026 15:13
par Bruce33
Bonjour,

Merci pour ce petit outil, concis et utile pour rafraîchir la mémoire.

Mon regret c'est qu'il ne s'affiche pas proprement sous Ubuntu car le texte y est plus gros.
Image
Du coup je me demande comment faire pour concevoir un programme simple qui soit multiplateforme, sans ce genre de désagrément...

Avoir la possibilité de garder la fenêtre au premier plan serait intéressant.
Comme je suis tatillon, j'ai remarqué les deux catégories "Entier" et "Relatif" (dans les deux cas il s'agit de nombres entiers) qui pourraient peut-être s'appeler "Entier naturel" (ou "Entier non signé") et "Entier relatif" (ou "Entier signé")... mais c'est moins concis. Et si on met juste "Naturel", c'est probablement plus ambigu au premier abord.