Premiers essais avec PB

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: Premiers essais avec PB

Message par Fred »

De plus avec la 5.20 il est possible de nommer une enumeration, pour pouvoir la continuer plus tard:

Code : Tout sélectionner

Enumeration Window
   #Form_principale
   #form_secondaire
   #autre_form
EndEnumeration
   
Enumeration Gadget
  #String1
  #String2
  #Imagegadget
  #Etc
EndEnumeration

   
Enumeration Window
  #Form4
EndEnumeration

Debug #autre_form
Debug #Form4
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Premiers essais avec PB

Message par Ar-S »

Fred a écrit :De plus avec la 5.20 il est possible de nommer une enumeration, pour pouvoir la continuer plus tard:
bien ça (surtout le faite de les nommer) :P
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Premiers essais avec PB

Message par Backup »

Fred a écrit :De plus avec la 5.20 il est possible de nommer une enumeration, pour pouvoir la continuer plus tard:


ce qui serai top serai de pouvoir faire le style d'ecriture des Structures, mais pour constante
style

Code : Tout sélectionner

Enumeration Window
	#Form_principale
	#form_secondaire
	#autre_form
EndEnumeration

Enumeration Gadget
	#String1
	#String2
	#Imagegadget
	#Etc
EndEnumeration


Enumeration Window
	#Form4
EndEnumeration

Debug window/#autre_form
Debug Gadget/#Form4
; EPB
de sorte qu'on puisse en lisant connaitre la parenté d'une constante
j'ai utilisé "/" pour differencier de "\" des structures ... mais ce pourrai tout aussi bien etre "_"

....

dans le genre demande ancienne

a quand la possibilité de

Code : Tout sélectionner


a.f=1
b.f=50.2
c.f=1.2

for i.f= a.f to b.f step c.f
	debug i.f
Next i

; EPB
je sais qu'on peut faire autrement, mais cela rendrai la boucle for-next compatible avec les Origines du Basic ;)
j'ai souvent le reflexe de commencer a utiliser des variables dans les boucles for-next , et suis obligé de changer
a cause de cette limitation :)
ce qui souvent allonge le code ...
Avatar de l’utilisateur
squale
Messages : 22
Inscription : mer. 28/août/2013 22:30
Localisation : Strasbourg
Contact :

Re: Premiers essais avec PB

Message par squale »

Merci pour toutes ces infos mais il y a tout de même quelque chose qui m'échappe. On peut ou l'on doit classer les énumérations par types d'objets ? En fait mon soucis c'est que je peux avoir mon programme qui plante suivant que je mette #bouton dans une énumération ou dans une autre. Est-ce normal ?
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Premiers essais avec PB

Message par Ar-S »

squale a écrit :Merci pour toutes ces infos mais il y a tout de même quelque chose qui m'échappe. On peut ou l'on doit classer les énumérations par types d'objets ? En fait mon soucis c'est que je peux avoir mon programme qui plante suivant que je mette #bouton dans une énumération ou dans une autre. Est-ce normal ?
Exemple stp
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Premiers essais avec PB

Message par falsam »

Si deux boutons se retrouvant dans deux séries d'énumeration porte le meme numéro alors oui c'est normal.

Code : Tout sélectionner

Enumeration
  #Button1
EndEnumeration

Enumeration
  #Button2
EndEnumeration

Debug #Button1
Debug #Button2
Tu débutes avec pure basic et je pense que tu devrais utiliser dans ce cas l'option #PB_Compiler_EnumerationValue pour déclarer tes énumérations.

Code : Tout sélectionner

Enumeration #PB_Compiler_EnumerationValue
  #Button1
EndEnumeration

Enumeration #PB_Compiler_EnumerationValue
  #Button2
EndEnumeration

Debug #Button1
Debug #Button2
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
squale
Messages : 22
Inscription : mer. 28/août/2013 22:30
Localisation : Strasbourg
Contact :

Re: Premiers essais avec PB

Message par squale »

Ok je pense que j'ai compris, en fait je ne peux pas faire deux énumérations différentes d'objets de même type ou alors si je veux le faire je dois utiliser #PB_Compiler_EnumerationValue.
Merci !

Edit : En fait non je comprends pas, si je mets tout dans la même énumération ca ne marche pas non plus... Je pense qui m'échappe dans la logique des énumérations.

Je vous mets mon code mais bon j'imagine que c'est bourré de bétises.

Code : Tout sélectionner

;
;
;
;
; ------------------------------------
; |           DELUGE v0.03           |
; ------------------------------------
;        OPERATION DEMOISISURE !!!
; 
;

Enumeration Window
  
  #FenetrePrincipale
  #FenetreFicheSanitaire
 
  #Scroll
  #Conteneur_baniere
  #Conteneur_page1
  #Arial20
  #titre
  #Conteneur_page2
  #Conteneur_page3  
  #valider
  #valider2 
EndEnumeration

Enumeration Boutons
  
  #bouton_medical

  
EndEnumeration

Enumeration Images
  #img_logo
  #img_telephone
  #img_fichesanitaire1
  #img_fichesanitaire2
EndEnumeration

Enumeration 
  #assurance
  #famille
  #statutmarital
EndEnumeration

Global  top = 5
Global LargeurFenetre = 500
Global HauteurFenetre = 700




;chargement des images
UsePNGImageDecoder()
LoadImage(#img_logo, "images/image.png")
LoadImage(#img_telephone, "images/tel.png")
LoadImage(#img_fichesanitaire1, "images/fichesanitaire1.png")
;Chargement d'une police de caractère
LoadFont(#Arial20, "Arial", 20, #PB_Font_Bold)



Procedure Fenetre_Principale()
  
 ;ouverture de la fenetre principale
 OpenWindow(#FenetrePrincipale, 0, 0 , LargeurFenetre, HauteurFenetre, "DELUGE v0.03", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
 
;creation du menu
      CreateMenu(0,WindowID(0))
      MenuTitle("Fichier")
      MenuItem(1, "Ouvrir")
      MenuItem(2, "Enregistrer")
      MenuItem(3, "Quitter")
      MenuTitle("Informations Utiles")
      MenuItem(4, "Dates d'inscription")  
      MenuTitle("?")
      MenuItem(5, "A Propos")  
; fin du menu

 
 
;creation du conteneur du haut qui restera affiché sur la page principale
      ContainerGadget(#Conteneur_baniere , 0, 0, LargeurFenetre, 75)
      ImageGadget(#PB_Any, 390, top, 100, 65, ImageID(#img_logo))
      TextGadget(#titre, 125, 20, 200, 40, "DELUGE", #PB_Text_Center) 
      SetGadgetFont(#titre, FontID(#Arial20))
      ;SetGadgetColor(#Conteneur_baniere, #PB_Gadget_BackColor, RGB(71,168,243))
      ;SetGadgetColor(#titre, #PB_Gadget_BackColor, RGB(71,168,243))
      ;SetGadgetColor(#titre, #PB_Gadget_FrontColor, RGB(255,255,255))
      CloseGadgetList()  
;fermeture du conteneur baniere
      
;creation du conteneur de la page 1
      ContainerGadget(#Conteneur_page1, 0, 75, LargeurFenetre, 600)
      
      FrameGadget(#PB_Any, 10, 0, 480, 180, "FICHE FAMILLE") 
      TextGadget(#PB_Any, 20, 30, 110, 24, "Nom :")
        StringGadget(#PB_Any, 100, 26, 185, 24, "")
        StringGadget(#PB_Any, 295, 26, 185, 24, "")
      TextGadget(#PB_Any, 20, 60, 110, 24, "Adresse :")
        StringGadget(#PB_Any, 100, 56, 380, 24, "")
      TextGadget(#PB_Any, 20, 90, 110, 24, "Téléphone :")
        StringGadget(#PB_Any, 100, 86, 80, 24, "")
      TextGadget(#PB_Any, 185, 90, 50, 24, "Mobile :")
        StringGadget(#PB_Any, 235, 86, 80, 24, "")
      TextGadget(#PB_Any, 320, 90, 50, 24, "Email :")
        StringGadget(#PB_Any, 365, 86, 115, 24, "")
      TextGadget(#PB_Any, 20, 120, 50, 24, "N°CAF :")
      StringGadget(#PB_Any, 100, 116, 380, 24, "")
;choix multiples  
      ComboBoxGadget(#assurance, 20, 146, 170, 24)  
        AddGadgetItem(#assurance, -1, "Assurance Resp Civile")
        AddGadgetItem(#assurance, -1, "Assurance 2")
        AddGadgetItem(#assurance, -1, "Assurance 3")
        AddGadgetItem(#assurance, -1, "Assurance 4")
        AddGadgetItem(#assurance, -1, "Assurance 5")
        AddGadgetItem(#assurance, -1, "Assurance 6")
        AddGadgetItem(#assurance, -1, "Assurance 7")
        AddGadgetItem(#assurance, -1, "Assurance 8")
      SetGadgetState(#assurance ,0) ; indique le rang par defaut

 TextGadget(14, 200, 150, 60, 24, "Numero :")
  
    StringGadget(15, 260, 146, 220, 24, "")
        
        
        
     ;-----------------------------------------COMPOSITION FOYER-----------------------------------------------------------------------    

  PanelGadget(#famille,10, 190, LargeurFenetre-18,190)
  ;PERE



  AddGadgetItem(#famille, 0, "PERE") 
  TextGadget(17, 10, 10, 60, 24, "Nom :")
    StringGadget(18, 90, 6, 140, 24, "")
  TextGadget(19, 240, 10, 60, 24, "Prénom :")
    StringGadget(20, 315, 6, 150, 24, "")
  TextGadget(21, 10, 40, 70, 24, "Profession :")
    StringGadget(22, 90, 36, 140, 24, "")
  TextGadget(23, 235, 40, 80, 24, "Employeur :")
    StringGadget(24, 315, 36, 150, 24, "")
  TextGadget(25, 10, 70, 110, 24, "Téléphone :")
    StringGadget(26, 90, 66, 140, 24, "")
  TextGadget(27, 235, 70, 50, 24, "Mobile :")
    StringGadget(28, 315, 66, 150, 24, "")
  TextGadget(29, 10, 100, 130, 24, "N°Securité Sociale :")
    StringGadget(30, 135, 96, 330, 24, "")
    
      ;choix multiples  
  ComboBoxGadget(#statutmarital, 10, 126, 160, 24)  
     AddGadgetItem(#statutmarital, -1, "Situation Familiale")
     AddGadgetItem(#statutmarital, -1, "Marié")
     AddGadgetItem(#statutmarital, -1, "Divorcé")
     AddGadgetItem(#statutmarital, -1, "Pacsé")
     AddGadgetItem(#statutmarital, -1, "Union Libre")
     AddGadgetItem(#statutmarital, -1, "Voeuf")
  SetGadgetState(#statutmarital,0) ; indique le rang par defaut







;MERE
AddGadgetItem(#famille, 1, "MERE") 
  TextGadget(33, 10, 10, 60, 24, "Nom :")
    StringGadget(34, 90, 6, 140, 24, "")
  TextGadget(35, 240, 10, 60, 24, "Prénom :")
    StringGadget(36, 315, 6, 150, 24, "")
  TextGadget(37, 10, 40, 70, 24, "Profession :")
    StringGadget(38, 90, 36, 140, 24, "")
  TextGadget(39, 235, 40, 80, 24, "Employeur :")
    StringGadget(40, 315, 36, 150, 24, "")
  TextGadget(41, 10, 70, 110, 24, "Téléphone :")
    StringGadget(42, 90, 66, 140, 24, "")
  TextGadget(43, 235, 70, 50, 24, "Mobile :")
    StringGadget(44, 315, 66, 150, 24, "")
  TextGadget(45, 10, 100, 130, 24, "N°Securité Sociale :")
    StringGadget(46, 135, 96, 330, 24, "")
    
      ;choix multiples  
  ComboBoxGadget(47, 10, 126, 160, 24)  
     AddGadgetItem(47, -1, "Situation Familiale")
     AddGadgetItem(47, -1, "Marié")
     AddGadgetItem(47, -1, "Divorcé")
     AddGadgetItem(47, -1, "Pacsé")
     AddGadgetItem(47, -1, "Union Libre")
     AddGadgetItem(47, -1, "Voeuf")
  SetGadgetState(47,0) ; indique le rang par defaut

  
  
  ;Enfant 1
  AddGadgetItem(#famille, 2, "ENFANT 1")
  TextGadget(96, 10, 10, 60, 24, "Nom :")
    StringGadget(97, 90, 6, 140, 24, "")
  TextGadget(98, 240, 10, 60, 24, "Prénom :")
    StringGadget(99, 315, 6, 150, 24, "")
  TextGadget(100, 10, 40, 130, 24, "Date de Naissance :")
    DateGadget(101, 130, 36, 100, 24, "%dd/%mm/%yyyy")
  TextGadget(102, 245, 40, 80, 24, "Lieu :")
    StringGadget(103, 315, 36, 150, 24, "")
  TextGadget(104, 10, 70, 110, 24, "Email :")
    StringGadget(105, 90, 66, 140, 24, "")
  ComboBoxGadget(106, 315, 66, 150, 24)  
     AddGadgetItem(106, -1, "Sexe")
     AddGadgetItem(106, -1, "Masculin")
     AddGadgetItem(106, -1, "Féminin")
     SetGadgetState(106,0) ; indique le rang par defaut
     
  TextGadget(107, 10, 100, 160, 24, "Etablissement Scolaire :")
    StringGadget(108, 160, 96, 140, 24, "")
  TextGadget(109, 305, 100, 80, 24, "Classe :")
    StringGadget(110, 360, 96, 105, 24, "")
    ComboBoxGadget(111, 10, 126, 150, 24)
    AddGadgetItem(111, -1, "Régime Alimentaire")
    AddGadgetItem(111, -1, "Sans Régime")
    AddGadgetItem(111, -1, "Sans Porc")
    AddGadgetItem(111, -1, "Sans Viande")
    AddGadgetItem(111, -1, "Sans Poisson")
    SetGadgetState(111, 0)
    
 ButtonGadget(#bouton_medical, 170, 126, 100, 24, "Medical")  

    
    ;Enfant 2
  AddGadgetItem(#famille, 3, "ENFANT 2")
  TextGadget(112, 10, 10, 60, 24, "Nom :")
    StringGadget(113, 90, 6, 140, 24, "")
  TextGadget(114, 240, 10, 60, 24, "Prénom :")
    StringGadget(115, 315, 6, 150, 24, "")
  TextGadget(116, 10, 40, 130, 24, "Date de Naissance :")
    DateGadget(117, 130, 36, 100, 24, "%dd/%mm/%yyyy")
  TextGadget(118, 245, 40, 80, 24, "Lieu :")
    StringGadget(119, 315, 36, 150, 24, "")
  TextGadget(120, 10, 70, 110, 24, "Email :")
    StringGadget(121, 90, 66, 140, 24, "")
  ComboBoxGadget(122, 315, 66, 150, 24)  
     AddGadgetItem(122, -1, "Sexe")
     AddGadgetItem(122, -1, "Masculin")
     AddGadgetItem(122, -1, "Féminin")
     SetGadgetState(122,0) ; indique le rang par defaut
     
  TextGadget(123, 10, 100, 160, 24, "Etablissement Scolaire :")
    StringGadget(124, 160, 96, 140, 24, "")
  TextGadget(125, 305, 100, 80, 24, "Classe :")
    StringGadget(126, 360, 96, 105, 24, "")
    ComboBoxGadget(127, 10, 126, 150, 24)
    AddGadgetItem(127, -1, "Régime Alimentaire")
    AddGadgetItem(127, -1, "Sans Régime")
    AddGadgetItem(127, -1, "Sans Porc")
    AddGadgetItem(127, -1, "Sans Viande")
    AddGadgetItem(127, -1, "Sans Poisson")
    SetGadgetState(127, 0)
    
   
  
    
      ;Enfant 3
  AddGadgetItem(#famille, 4, "ENFANT 3")
  TextGadget(128, 10, 10, 60, 24, "Nom :")
    StringGadget(129, 90, 6, 140, 24, "")
  TextGadget(130, 240, 10, 60, 24, "Prénom :")
    StringGadget(131, 315, 6, 150, 24, "")
  TextGadget(132, 10, 40, 130, 24, "Date de Naissance :")
    DateGadget(133, 130, 36, 100, 24, "%dd/%mm/%yyyy")
  TextGadget(134, 245, 40, 80, 24, "Lieu :")
    StringGadget(135, 315, 36, 150, 24, "")
  TextGadget(136, 10, 70, 110, 24, "Email :")
    StringGadget(137, 90, 66, 140, 24, "")
  ComboBoxGadget(138, 315, 66, 150, 24)  
     AddGadgetItem(138, -1, "Sexe")
     AddGadgetItem(138, -1, "Masculin")
     AddGadgetItem(138, -1, "Féminin")
     SetGadgetState(138,0) ; indique le rang par defaut
     
  TextGadget(139, 10, 100, 160, 24, "Etablissement Scolaire :")
    StringGadget(140, 160, 96, 140, 24, "")
  TextGadget(141, 305, 100, 80, 24, "Classe :")
    StringGadget(142, 360, 96, 105, 24, "")
    ComboBoxGadget(143, 10, 126, 150, 24)
    AddGadgetItem(143, -1, "Régime Alimentaire")
    AddGadgetItem(143, -1, "Sans Régime")
    AddGadgetItem(143, -1, "Sans Porc")
    AddGadgetItem(143, -1, "Sans Viande")
    AddGadgetItem(143, -1, "Sans Poisson")
    SetGadgetState(143, 0)
    
   
  
    
  ;Enfant 4
  AddGadgetItem(#famille, 5, "ENFANT 4")
  TextGadget(144, 10, 10, 60, 24, "Nom :")
    StringGadget(145, 90, 6, 140, 24, "")
  TextGadget(146, 240, 10, 60, 24, "Prénom :")
    StringGadget(147, 315, 6, 150, 24, "")
    TextGadget(148, 10, 40, 130, 24, "Date de Naissance :")
    DateGadget(149, 130, 36, 100, 24, "%dd/%mm/%yyyy")
  TextGadget(150, 245, 40, 80, 24, "Lieu :")
    StringGadget(151, 315, 36, 150, 24, "")
    TextGadget(152, 10, 70, 110, 24, "Email :")
    StringGadget(153, 90, 66, 140, 24, "")
  ComboBoxGadget(154, 315, 66, 150, 24)  
     AddGadgetItem(154, -1, "Sexe")
     AddGadgetItem(154, -1, "Masculin")
     AddGadgetItem(154, -1, "Féminin")
     SetGadgetState(154,0) ; indique le rang par defaut
     
  TextGadget(155, 10, 100, 160, 24, "Etablissement Scolaire :")
    StringGadget(156, 160, 96, 140, 24, "")
  TextGadget(157, 305, 100, 80, 24, "Classe :")
    StringGadget(158, 360, 96, 105, 24, "")
    ComboBoxGadget(159, 10, 126, 150, 24)
    AddGadgetItem(159, -1, "Régime Alimentaire")
    AddGadgetItem(159, -1, "Sans Régime")
    AddGadgetItem(159, -1, "Sans Porc")
    AddGadgetItem(159, -1, "Sans Viande")
    AddGadgetItem(159, -1, "Sans Poisson")
    SetGadgetState(159, 0)
    
  
    
    
CloseGadgetList()



;-------------------------AUTRE PERSONNE-----------------------------------------------------
FrameGadget(49, 10, 390, 480,150, "AUTRES PERSONNES COMPOSANT LE FOYER")
  TextGadget(50, 20, 420, 60, 24, "Nom :")
    StringGadget(51, 88, 416, 140, 24, "")
  TextGadget(52, 250, 420, 60, 24, "Prénom :")
    StringGadget(53, 315, 416, 150, 24, "")
  TextGadget(54, 20, 450, 60, 24, "Nom :")
    StringGadget(55, 88, 446, 140, 24, "")
  TextGadget(56, 250, 450, 60, 24, "Prénom :")
    StringGadget(57, 315, 446, 150, 24, "")
  TextGadget(58, 20, 480, 60, 24, "Nom :")
    StringGadget(59, 88, 476, 140, 24, "")
  TextGadget(60, 250, 480, 60, 24, "Prénom :")
    StringGadget(61, 315, 476, 150, 24, "")
  TextGadget(62, 20, 510, 60, 24, "Nom :")
    StringGadget(63, 88, 506, 140, 24, "")
  TextGadget(64, 250, 510, 60, 24, "Prénom :")
    StringGadget(65, 315, 506, 150, 24, "")
   
        
      
  
  ButtonGadget(#valider ,390 ,560 ,90 ,20 , "Valider")
  
      CloseGadgetList()
      
      

;--------------------------------------- PAGE 2 -----------------------------  


ContainerGadget(#Conteneur_page2 , 0, 75, LargeurFenetre, 600)





;-------- EN CAS URGENCE--------  
FrameGadget(#PB_Any  , 10, 0, 480, 210, "EN CAS D'URGENCE")


;--------- contact 1 --------------

 TextGadget(66, 20, 30, 60, 24, "Nom :")
    StringGadget(67, 58, 26, 100, 24, "")
 TextGadget(68, 165, 30, 60, 24, "Prénom :")
    StringGadget(69, 220, 26, 100, 24, "")
 TextGadget(70, 330, 30, 60, 24, "Lien :")
    StringGadget(71, 370, 26, 110, 24, "")  
  ImageGadget(#PB_Any, 20, 52, 32, 32, ImageID(#img_telephone))
    StringGadget(73, 58, 56, 100, 24, "")
 TextGadget(74, 175, 60, 60, 24, "Ou :")
    StringGadget(75, 220, 56, 100, 24, "")
    
    
    
;--------- contact 2 --------------
    
    
  TextGadget(76, 20, 90, 60, 24, "Nom :")
    StringGadget(77, 58, 86, 100, 24, "")
 TextGadget(78, 165, 90, 60, 24, "Prénom :")
    StringGadget(79, 220, 86, 100, 24, "")
 TextGadget(80, 330, 90, 60, 24, "Lien :")
    StringGadget(81, 370, 86, 110, 24, "")
   ImageGadget(#PB_Any , 20, 112, 32, 32, ImageID(#img_telephone))
    StringGadget(83, 58, 116, 100, 24, "")
 TextGadget(84, 175, 120, 60, 24, "Ou :")
    StringGadget(85, 220, 116, 100, 24, "")

;--------- contact 3 ---------------
    
    TextGadget(86, 20, 150, 60, 24, "Nom :")
    StringGadget(87, 58, 146, 100, 24, "")
 TextGadget(88, 165, 150, 60, 24, "Prénom :")
    StringGadget(89, 220, 146, 100, 24, "")
 TextGadget(90, 330, 150, 60, 24, "Lien :")
    StringGadget(91, 370, 146, 110, 24, "")
  ImageGadget(#PB_Any , 20, 172, 32, 32, ImageID(#img_telephone))
    StringGadget(93, 58, 176, 100, 24, "")
 TextGadget(94, 175, 180, 60, 24, "Ou :")
    StringGadget(95, 220, 176, 100, 24, "")


    
    
    
;------------------- AUTORISEES /INTERDITES -------------------


FrameGadget(#PB_Any , 10, 220, 480, 210, "AUTORISEES / INTERDITES A CHERCHER")
;---------- individu 1 ------------
 TextGadget(160, 20, 250, 60, 24, "Nom :")
    StringGadget(161, 58, 246, 100, 24, "")
 TextGadget(162, 165, 250, 60, 24, "Prénom :")
    StringGadget(163, 220, 246, 100, 24, "")
 TextGadget(164, 330, 250, 60, 24, "Lien :")
    StringGadget(165, 370, 246, 110, 24, "")
   ImageGadget(#PB_Any , 20, 272, 32, 32, ImageID(#img_telephone))
    StringGadget(167, 58, 276, 100, 24, "")
 TextGadget(168, 175, 280, 340, 24, "Ou :")
    StringGadget(169, 220, 276, 100, 24, "")
 ComboBoxGadget(170, 370, 276, 110, 24)
    AddGadgetItem(170, -1, "Autorisée")
    AddGadgetItem(170, -1, "Interdite")
    
;---------- individu 2 ------------
 TextGadget(171, 20, 310, 60, 24, "Nom :")
    StringGadget(172, 58, 306, 100, 24, "")
 TextGadget(173, 165, 310, 60, 24, "Prénom :")
    StringGadget(174, 220, 306, 100, 24, "")
 TextGadget(175, 330, 310, 60, 24, "Lien :")
    StringGadget(176, 370, 306, 110, 24, "")
   ImageGadget(#PB_Any , 20, 332, 32, 32, ImageID(#img_telephone))
    StringGadget(178, 58, 336, 100, 24, "")
 TextGadget(179, 175, 340, 340, 24, "Ou :")
    StringGadget(180, 220, 336, 100, 24, "")
 ComboBoxGadget(181, 370, 336, 110, 24)
    AddGadgetItem(181, -1, "Autorisée")
    AddGadgetItem(181, -1, "Interdite") 
    
;---------- individu 3 ------------
 TextGadget(182, 20, 370, 60, 24, "Nom :")
    StringGadget(183, 58, 366, 100, 24, "")
 TextGadget(184, 165, 370, 60, 24, "Prénom :")
    StringGadget(185, 220, 366, 100, 24, "")
 TextGadget(186, 330, 370, 60, 24, "Lien :")
    StringGadget(187, 370, 366, 110, 24, "")
   ImageGadget(#PB_Any , 20, 392, 32, 32, ImageID(#img_telephone))
    StringGadget(189, 58, 396, 100, 24, "")
 TextGadget(190, 175, 400, 340, 24, "Ou :")
    StringGadget(191, 220, 396, 100, 24, "")
 ComboBoxGadget(192, 370, 396, 110, 24)
    AddGadgetItem(192, -1, "Autorisée")
    AddGadgetItem(192, -1, "Interdite")    
    
 

Bouton_retour = ButtonGadget(#PB_Any , 300,560,90,20, "Retour")
ButtonGadget(#valider2 ,390 ,560 ,90 ,20 , "Valider")
  


  CloseGadgetList()  


;--------------------------------- PAGE 3 : infos utiles ----------------



ContainerGadget(#Conteneur_page3 , 0, 75, LargeurFenetre, 600)





TextGadget(500, 20, 0,  200,24, "Dates d'inscrpition")




  CloseGadgetList()  
  
HideGadget(#Conteneur_page2, #True)  
HideGadget(#Conteneur_page3, #True)


Global page = 1












  
EndProcedure  


Procedure Fenetre_FicheSanitaire()
  
 
  
  OpenWindow(#FenetreFicheSanitaire, 100,100, 826, 600, "FICHE SANITAIRE", #PB_Window_SystemMenu, #FenetrePrincipale)
  ScrollAreaGadget(#Scroll, 0, 0 , 826, 600, 800, 1147)
  ImageGadget(#img_fichesanitaire1, 0, 0 , 800, 1147, ImageID(#img_fichesanitaire1))
  
EndProcedure  


;lancement de la procedure creerfeentre()
Fenetre_Principale()  
  
  

Repeat
    
Event = WaitWindowEvent()
  
   
Select Event
    
  Case  #PB_Event_Gadget
    
      Select EventGadget()
    
        Case #bouton_medical
          If Not IsWindow(#FenetreFicheSanitaire)
            Fenetre_FicheSanitaire()
          Else
            SetActiveWindow(#FenetreFicheSanitaire)
          EndIf
          
          
           Case #valider 
              If page = 1
                page = 2
                HideGadget(#Conteneur_page1, #True)
                HideGadget(#Conteneur_page3, #True)
                HideGadget(#Conteneur_page2, #False)
          
                
        
                
              EndIf  
              
           Case #valider2 
              If page = 2
                page = 3
                HideGadget(#Conteneur_page1, #True)
                HideGadget(#Conteneur_page3, #False)
                HideGadget(#Conteneur_page2, #True)
          
                
             
                
              EndIf  
              
              
             EndSelect 
              
              
    Case  #PB_Event_Menu 
           
          Select EventMenu()
            Case 1 : OpenFile(1, "text.txt")
        
            Case 2 : MessageRequester("Enregistrer", "N'est pas disponible")
              
            Case 3 :  CloseWindow(#PB_All) 
              Break
              
            Case 4
              If page = 1
                page = 3
                HideGadget(#Conteneur_page1, #True)
                HideGadget(#Conteneur_page3, #False)
                HideGadget(#Conteneur_page2, #True)
          
                
              ElseIf page = 2
                page = 3
                HideGadget(#Conteneur_page2, #True)
                HideGadget(#Conteneur_page1, #True)
                HideGadget(#Conteneur_page3, #False)
                
              Else
               
                
               EndIf   
             
              
            Case 5 : MessageRequester("A Propos" , "texte")
          EndSelect
              
              
              
              
              
    
 
    
      
  Case #PB_Event_CloseWindow    
      If  GetActiveWindow() = #FenetreFicheSanitaire
        CloseWindow(#FenetreFicheSanitaire)
      Else
        End
      EndIf 
     
      
  EndSelect
    
  
  ForEver 
 
End
  
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Premiers essais avec PB

Message par Backup »

faut choisir !

soit tu geres tes enumerations en "manuel" avec Enumeration----Endenumeration

soit tu les fait gerer par Purebasic avec #Pb_Any a chaque Elements

mais mélanger les 2 n'est pas une bonne idée

#Pb_any va "tirer" un numero pour Id de ton gadget

si ce numero est le meme qu'une de tes enumerations "manuel"
ça peut creer un conflit .... car un objet "#Pb_Any" , peut se retrouver avec le meme numero qu'un autre objet "enumeration-Endenumeration"

c'est pourquoi je conseil de faire tout en "manuel" ou tout en "Automatique"
mais pas mélanger .....
(perso j'utilise le mode Manuel )
Avatar de l’utilisateur
squale
Messages : 22
Inscription : mer. 28/août/2013 22:30
Localisation : Strasbourg
Contact :

Re: Premiers essais avec PB

Message par squale »

Ok je vois, mais dans le cas par exemple d'un ComboBoxGadget avec des AddGadgetItem je peux aussi mettre #pb_any ? comment je les lie du coup ?
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Premiers essais avec PB

Message par Mesa »

Comme ça :

Code : Tout sélectionner

; CONSTANTES
;-------------------------------------
Enumeration Window 
  #Fenetre_principale 
EndEnumeration 

Enumeration Gadget 
  #ComboBoxGadget_Avec_Enumeration 
EndEnumeration 


; VARIABLES
;-------------------------------------
Global ComboBoxGadget_Avec_pbAny ; Le Global n'est pas necessaire mais au cas où la 
                                  ; variable serait utilisée dans une procédure, elle 
                                  ; deviendrait invisible (dans la procédure). Voir l'aide.


; CODE
;-------------------------------------
If OpenWindow(#Fenetre_principale , 0, 0, 270, 180, "ComboBoxGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  
  ; Premier ComboBoxGadget, déclaré avec une constante
  ComboBoxGadget(#ComboBoxGadget_Avec_Enumeration , 10, 10, 250, 21, #PB_ComboBox_Editable)
  AddGadgetItem(#ComboBoxGadget_Avec_Enumeration , -1, "Liste déroulante éditable...")
  
  ; Second ComboBoxGadget, déclaré avec une variable (permet d'ajouter des gadgets à la volée avec #PB_Any...)
  ComboBoxGadget_Avec_pbAny=ComboBoxGadget(#PB_Any, 10, 70, 250, 21)
  For a = 1 To 5
    AddGadgetItem(ComboBoxGadget_Avec_pbAny, -1,"Elément de liste déroulante " + Str(a))
  Next
  
  
  SetGadgetState(#ComboBoxGadget_Avec_Enumeration, 0)
  SetGadgetState(ComboBoxGadget_Avec_pbAny, 2) ; Sélectionne le troisième élément (la numérotation commence à 0)
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Mesa.
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: Premiers essais avec PB

Message par Fred »

Dobro a écrit :faut choisir !

soit tu geres tes enumerations en "manuel" avec Enumeration----Endenumeration

soit tu les fait gerer par Purebasic avec #Pb_Any a chaque Elements

mais mélanger les 2 n'est pas une bonne idée

#Pb_any va "tirer" un numero pour Id de ton gadget

si ce numero est le meme qu'une de tes enumerations "manuel"
ça peut creer un conflit .... car un objet "#Pb_Any" , peut se retrouver avec le meme numero qu'un autre objet "enumeration-Endenumeration"

c'est pourquoi je conseil de faire tout en "manuel" ou tout en "Automatique"
mais pas mélanger .....
(perso j'utilise le mode Manuel )
C'est faux, il ne peut pas y avoir de conflit ! Donc tu peux très bien mixer les deux, et c'est d'ailleurs conseillé pour eviter d'oublier d'appeler la routine FreeXXX() apres un #PB_Any
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: Premiers essais avec PB

Message par Fred »

falsam a écrit :Si deux boutons se retrouvant dans deux séries d'énumeration porte le meme numéro alors oui c'est normal.

Code : Tout sélectionner

Enumeration
  #Button1
EndEnumeration

Enumeration
  #Button2
EndEnumeration

Debug #Button1
Debug #Button2
Tu débutes avec pure basic et je pense que tu devrais utiliser dans ce cas l'option #PB_Compiler_EnumerationValue pour déclarer tes énumérations.

Code : Tout sélectionner

Enumeration #PB_Compiler_EnumerationValue
  #Button1
EndEnumeration

Enumeration #PB_Compiler_EnumerationValue
  #Button2
EndEnumeration

Debug #Button1
Debug #Button2
#PB_Compiler_EnumerationValue est une fonctionnalité avancée et est à proscrire pour les débutants ! Si tu inseres une enumeration entre les deux, la valeur va etre incorrecte. C'est pourquoi il faut utiliser les enumeration nommées si tu veux les ecrire en plusieurs parties.

Code faux:

Code : Tout sélectionner

Enumeration #PB_Compiler_EnumerationValue
  #Button1
EndEnumeration

Enumeration
  #Fenetre1
  #Fenetre2
  #Fenetre3
EndEnumeration

Enumeration #PB_Compiler_EnumerationValue
  #Button2
EndEnumeration

Debug #Button1
Debug #Button2 ; Faux
Code juste:

Code : Tout sélectionner

Enumeration Gadget
  #Button1
EndEnumeration

Enumeration
  #Fenetre1
  #Fenetre2
  #Fenetre3
EndEnumeration

Enumeration Gadget
  #Button2
EndEnumeration

Debug #Button1
Debug #Button2 
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Premiers essais avec PB

Message par falsam »

Fred a écrit :#PB_Compiler_EnumerationValue est une fonctionnalité avancée et est à proscrire pour les débutants ! Si tu inseres une enumeration entre les deux, la valeur va etre incorrecte. C'est pourquoi il faut utiliser les enumeration nommées si tu veux les ecrire en plusieurs parties.
A proscrire pour les débutants !!!! ? Fred tu ne fais que confirmer que Form Designer n'est pas adapté aux débutants. Extrait de code généré par Form Designer

Code : Tout sélectionner

Enumeration #PB_Compiler_EnumerationValue
  #Window_0
EndEnumeration

Enumeration #PB_Compiler_EnumerationValue
  #Button_0
  #Button_1
  #String_0
  #String_1
  #String_2
EndEnumeration
.....
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Fred
Site Admin
Messages : 2805
Inscription : mer. 21/janv./2004 11:03

Re: Premiers essais avec PB

Message par Fred »

Le form designer est fait pour les débutants, si on ne mets pas les mains dans le cambouis en regardant le code généré ;). Mais tu as raison, le code généré n'est pas bon, je vais regarder ça. Ca ne change rien au fait que #PB_Compiler_EnumerationValue est à proscrire pour le débutant (en fait cette constante n'est utile que dans des cas très particuliers assez rare).
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Premiers essais avec PB

Message par Kwai chang caine »

Dieu a écrit :Code faux:
Enumeration #PB_Compiler_EnumerationValue
#Button1
EndEnumeration

Enumeration
#Fenetre1
#Fenetre2
#Fenetre3
EndEnumeration

Enumeration #PB_Compiler_EnumerationValue
#Button2
EndEnumeration

Debug #Button1
Debug #Button2 ; Faux
Et ben j'suis encore pas dans la merde..
J'ai codé des milliers de lignes dans une DLL comme ça :cry:
Pour l'instant j'ai pas eu de plantage...le probleme c'est que le nommage n'existait pas avant
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre