Appel d'une Form dans la form principale?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Cyrion81
Messages : 26
Inscription : jeu. 25/juin/2015 20:13

Appel d'une Form dans la form principale?

Message par Cyrion81 »

Bonjour à tous
Toujours dans le projet en cours, je souhaiterai appeler une form en popup par exemple de ma fenetre principale. J'ai parcouru des tas de tutos, sans trouver le moyen de pouvoir mettre à exécution mon idée. la seule chose que j'ai compris c'est qu'il fallait l'inclure dans la form principale par includeFile ( étant débutant en PB je peux me tromper).
En effet apres avoir testé l'idée des procédures par form (mais cela va faire un tas de procedures). Il me semble que cela serait bcp plus facile pour moi de créer une form par gros chapitres. Mais voila, je ne sais comment appeler la form de ma fenetre principale.
Merci, si possible de m'aider, même si cela vous parait très très basique ou me donner une idée autre.
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 138
Inscription : mer. 28/janv./2009 13:28

Re: Appel d'une Form dans la form principale?

Message par Philippe_GEORGES »

En fait, tu voudrais appeler une fenêtre à partir d'une autre fenêtre par exemple en cliquant sur un bouton ?

Si c'est le cas, tu peux le faire avec openwindow, puis lors de la fermeture, une procedure closewindow est activée.....

C'est ça que tu veux ???

Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Cyrion81
Messages : 26
Inscription : jeu. 25/juin/2015 20:13

Re: Appel d'une Form dans la form principale?

Message par Cyrion81 »

Bonsoir Philippe
Non, pas tout à fait :
Je créé une fenetre principale (ou une form principale)
je créé une deuxième forme genre loi_ohm.pbf ( donc qui affichera une nouvelle fenètre à demande)
dans ma fenètre principale , je veux pouvoir afficher cette deuxième forme comme un pop up par exemple. ( en non pas une fenetre créé avec une procédure), la forme loi_ohm.pbi ou .pb (comportant des descriptifs d'autres accès etc.. ou des exo)
Le but étant d'avoir une forme par chapitre qui sont différents et assez nombreux, evitant ainsi une trop longue programmation de X lignes dans un même .pb et pour moi de traiter chancun des sujets séparément.
Mais il faut que chaque formes créée séparément soient accessibles de la fenetre principale par bouton par exemple.
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: Appel d'une Form dans la form principale?

Message par case »

comme ca?

Code : Tout sélectionner


; title of the project.
;- inits
UsePNGImageDecoder()
InitSprite()
InitSound()
;- structures
;- declaration des procedures 
;- globals 
 Declare form1()
 Declare form2()
Global main
;- default window
main=OpenWindow(#PB_Any,0,0,800,600,"")
go_form1=ButtonGadget(#PB_Any,0,0,320,20,"form1")
go_form2=ButtonGadget(#PB_Any,0,40,320,20,"form2")
;- main loop
Repeat  
  ev=WaitWindowEvent(0)
  Select ev
    Case #PB_Event_Gadget      
      Select EventGadget()
        Case go_form1
          form1()
        Case go_form2
          form2()
      EndSelect
  EndSelect
  
Until ev=#PB_Event_CloseWindow And EventWindow()=main
End
Procedure form1()
  DisableWindow(main,#True)
  form1=OpenWindow(#PB_Any,0,0,800,600,"form1")
Repeat  
  ev=WaitWindowEvent(0)
Until ev=#PB_Event_CloseWindow And EventWindow()=form1

  CloseWindow(form1)
 DisableWindow(main,#False) 
  SetActiveWindow(main)
  
  
  
EndProcedure


Procedure form2()
  DisableWindow(main,#True)
  form2=OpenWindow(#PB_Any,0,0,800,600,"form2")
Repeat  
  ev=WaitWindowEvent(0)
Until ev=#PB_Event_CloseWindow And EventWindow()=form2

  CloseWindow(form2)
  DisableWindow(main,#False)
  
  SetActiveWindow(main)
  
  
EndProcedure










ImageImage
Cyrion81
Messages : 26
Inscription : jeu. 25/juin/2015 20:13

Re: Appel d'une Form dans la form principale?

Message par Cyrion81 »

Bonsoir Case
Non comme je le précise
Cyrion81 a écrit : ven. 04/nov./2022 18:40 dans ma fenètre principale , je veux pouvoir afficher cette deuxième forme comme un pop up par exemple. ( et non pas une fenetre créé avec une procédure), la forme loi_ohm.pbi ou .pb (comportant des descriptifs d'autres accès etc.. ou des exo)
Appeler une forme.pb dans mon main.pb et en popup

Merci déjà pour ton aide,
Avatar de l’utilisateur
case
Messages : 1545
Inscription : lun. 10/sept./2007 11:13

Re: Appel d'une Form dans la form principale?

Message par case »

je comprend pas ce que tu veux en fait, ce que tu appelle un form je suppose issu du form designer c'est du code pb(.pbi = pure basic include), un popup c'est une fenetre classique . tu ne peux pas dire a ton programme charge le form machin et utilise le sans rien coder derriere un form ne se charge pas comme une image externe que tu affiche ensuite. le form designer est la pour générer du code pb a intégrer dans ton programme principal et surtout a le gérer dans ton programme principal .

si tu souhaite ce genre de fonctionnement tu vas devoir coder un interpréteur dans ton programme principal qui vas lire le fichier du form sur le disque puis le
gerer . c'est pas simple cela reviens a recréer le form designer sans la partie designer

alors c'est possible mais ça demande un boulot énorme
ImageImage
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Appel d'une Form dans la form principale?

Message par Mesa »

Le mdigadget peut peut-être t'intéresser sinon voir ci-dessous:

Code : Tout sélectionner


Options_F1 = #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_SizeGadget|#PB_Window_Maximize     
Options_F2 = #PB_Window_SizeGadget|#PB_Window_Invisible  

;- default window
main=OpenWindow(#PB_Any,0,0,800,600,"Fenêtre principale", options_F1)
go_form1=ButtonGadget(#PB_Any,10,10,60,20,"form1")
go_form2=ButtonGadget(#PB_Any,10,40,60,20,"form2")

;forms
form1=OpenWindow(#PB_Any,100,100,400,400,"form1", options_F2)
form2=OpenWindow(#PB_Any,200,100,600,300,"form2", options_F2)

;- main loop
Repeat  
	ev=WaitWindowEvent(0)
	fn=EventWindow()
	
	Select fn
		Case main
			Select ev
				Case #PB_Event_SizeWindow,#PB_Event_MoveWindow,#PB_Event_MinimizeWindow,#PB_Event_MaximizeWindow,#PB_Event_RestoreWindow   
					HideWindow(form1, #True)
					HideWindow(form2, #True)
					SetActiveWindow(main)
					
				Case #PB_Event_CloseWindow
					quitter = 1
					
				Case #PB_Event_Gadget      
					Select EventGadget()
						Case go_form1
							HideWindow(form1, #False)
							SetActiveWindow(form1)
							
						Case go_form2
							HideWindow(form2, #False)
							SetActiveWindow(form2)
					EndSelect
			EndSelect
	EndSelect
	
Until quitter = 1

M.
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Appel d'une Form dans la form principale?

Message par MLD »

Bonjours
Case a raison. Tu peu a partir de la fenêtre principal commander autant de fenêtres secondaires que tu veux, soit en faisant des procédures dans le code principal soit en faisant des .pbi.
Il me semble que ce que tu veux réaliser n'est pas trop difficile, mais il te faut un synoptique de toutes les fonctions que tu souhaite..
Il ne me semble pas utile d'avoir une fenêtre par chapitre. Par exemple la même fenêtre secondaire peux servir a des explication sur le courant continu et sur le courant alternatif. c'est une manipulation des gadgets qui compose la fenêtre il peut y avoir des gadgets texte qui changent des gadgets images qui changent en fonction des textes, des couleur qui changent y compris la couleur de la fenêtre secondaire, et tous ce que tu peux imaginé .
Le form designer est a mon avis peu adapter ce genre de programmation. Peux d'entre nous utilise cet outil. Il faudra que tu mette les mains dans le cambouis, c'est tous le charme de la programmation. :? :lol:
Si tu veux une aide efficace montre nous un peu de code.
Pour information avec MICOUTE nous avons il y a quelques temps réalisé un logiciel pour une association de diabétique, qui consistait de faire prendre conscience a la population des dangers de cette maladie.
Ceci consistait sur divers cites d’interroger les volontaires, avec un questionnaire informatique, et de faire en fonction du résulta une évaluation d'un danger potentiel ou non. De rassembler toutes les fiches interrogation pour en faire des statistiques avec graphiques. Tous ceci étant fait par des personnes ne connaissant rien a l'informatique.Si mes souvenirs sont bons il y avait au total 5 fenêtres, mais beaucoup de gadgets.
Cyrion81
Messages : 26
Inscription : jeu. 25/juin/2015 20:13

Re: Appel d'une Form dans la form principale?

Message par Cyrion81 »

Bonsoir, Voila le code que j 'ai pu trouver. Il y a une erreur de fermeture. Sinon ca semble correspondre à ce que j 'attendais, mais étant débutant entre ce que je souhaiterai et ce qu'il faut faire en realité sont deux mondes différents , c'est pour cela que je me raccroche avec intéret à vos avis, avant de choisir la bonne soluce.
Le main.pb

Code : Tout sélectionner

Global Fin=#False
XIncludeFile "Form1.pbf"
XIncludeFile "Form2.pbf"
openform1()
Repeat
  event= WaitWindowEvent()
  
  Select event 
    Case #PB_Event_CloseWindow
      Select  EventWindow()
        Case #Form1
          Fin=#True
          
        Case #Form2
          CloseWindow(#Form2)
      EndSelect
    Case #PB_Event_Gadget
      Select Event_Gadget
        Case #BtnFermerFrm2
          CloseWindow(#form2)       
        Case #BtnAfficherfrm2
          openform2()  
      
      EndSelect       
   EndSelect  
Until Fin=#True


La form1.pbf

Code : Tout sélectionner


Global Form1
Enumeration FormWindow
  #Form1
EndEnumeration

Enumeration FormGadget
  #BtnAfficherfrm2
EndEnumeration


Procedure OpenForm1(x = 0, y = 0, width = 600, height = 400)
  Form1 = OpenWindow(#PB_Any, x, y, width, height, "Form1", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered)
  ButtonGadget(#BtnAfficherfrm2, 170, 260, 180, 30, "Afficher Form2")
EndProcedure

Procedure Form1_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

et la Form2.pbf

Code : Tout sélectionner

Enumeration FormWindow
  #Form2
EndEnumeration

Enumeration FormGadget
  #BtnFermerFrm2
EndEnumeration


Procedure OpenForm2(x = 0, y = 0, width = 600, height = 400)
  OpenWindow(#Form2, x, y, width, height, "Form2", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_ScreenCentered)
  ButtonGadget(#BtnFermerFrm2, 150, 220, 260, 30, "Fermer")
EndProcedure

Procedure Form2_Events(event)
  Select event
    Case #PB_Event_CloseWindow
      ProcedureReturn #False

    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect

    Case #PB_Event_Gadget
      Select EventGadget()
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

Je le repètes votre avis pour la methode reste prioritaire dans mon choix avant de commencer le long chemin de la prog.
Merci pour votre compréhension du "Bleu byte" :D
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Appel d'une Form dans la form principale?

Message par MLD »

Bonjour Cyrion81
Je le repètes votre avis pour la methode reste prioritaire dans mon choix avant de commencer le long chemin de la prog.
Merci pour votre compréhension du "Bleu byte" :D
Tu persiste a penser que la solution est une fenêtre par sujet, et tu ne t'occupe pas de la manipulation des gadgets. A mon avis tu fait fausse route.
Les .pbf, .pbi et autres sont dans beaucoup de cas inutile.
Pour exemple je te transmet le code d'un petit jeu que j'ai réalisé il y a quelques temps.
Tu remarqueras que pour les rubriques informations, score, et nouveau jeu, une seule fenêtre est utilisée. Il y a simplement une manipulation de gadgets sur cette fenêtre. (Voir procedure nj)

Code : Tout sélectionner

;¤¤¤ Jeu Pousse-pousse MLD 26/04/2020: Droits libre. ¤¤¤¤¤
;¤¤¤ Compilation PB 5.72 X86                         ¤¤¤¤¤ 
#Fp = 1:#contner = 2:#txtinfo = 3
#txtP1 = 10:#txtP2 = 11:#txtP3 = 12:#txtP4 = 13:#txtP5 = 14:#txtP6 = 15:#txtP7 = 16:#txtP8 = 17:#txtP9 = 18:#txtP10 = 19
#txtP11 = 20:#txtP12 = 21:#txtP13 = 22:#txtP14 = 23:#txtP15 = 24:#txtP16 = 25:#txtP17 = 26:#txtP18 = 27:#txtP19 = 28:#txtP20 = 29
#txtP21 = 30:#txtP22 = 31:#txtP23 = 32:#txtP24 = 33:#txtP25 = 34:#txtP26 = 35:#txtP27 = 36:#txtP28 = 37
#txtbtinf = 40:#txtbtscr = 41:#txtbtnj = 42:#txtbtstop = 43:#txtchronos = 44:#txttemps = 45
#tim1 = 100:#fchscor = 110
#Fj= 60:#txttitre = 61:#txtnom = 62:#stringn = 63:#btjeu = 64:#btraz = 65:#btretour = 66:#editor = 67:#list = 68

Global FontID2 = LoadFont(301,"Comic sans MS",14,#PB_Font_Italic)
Global FontID3 = LoadFont(302,"Comic sans MS",12,#PB_Font_Italic)
Global FontID4 = LoadFont(303,"Arial",12)
Global dpj = 0, nj$

Macro Coul(g,coulf,coult)
SetGadgetColor(g,#PB_Gadget_BackColor,coulf):SetGadgetColor(g,#PB_Gadget_FrontColor,coult) 
EndMacro

Procedure prereq();init
  Global  X =0,Y = 0,larg = 100,haut = 100,ngcd =10,ngcm = 37,nbchz = 7,nbcv = 4,fc = 65,hl = 70
EndProcedure

Procedure Forme() 
  Region = CreateRoundRectRgn_(1, 0, WindowWidth(1), WindowHeight(1), 40, 60) 
  SetWindowRgn_(WindowID(1), Region,1):DeleteObject_(Region)  
EndProcedure

Procedure WindowCallback(WindowID,message,wParam,lParam)
  res=#PB_ProcessPureBasicEvents
  Select message 
    Case #WM_PAINT
      Forme() 
  EndSelect
  ProcedureReturn res
EndProcedure

Procedure affc()
  Global Dim Tposcor((ngcm -ngcd)+1,3)
  Global Dim Tposc((ngcm -ngcd)+1,4)
  Global FontID1 = LoadFont(300,"Arial",hl)
  lig = 0
  For z = ngcd To (ngcm - ngcd)+9 
    lig = lig + 1
    If lig = nbchz +1:Y = Y + haut +1:X = 0:lig = 1:EndIf 
    Tposcor(z-9,1)= z:Tposcor(z-9,2)= X:Tposcor(z-9,3)= Y
    If z = 36 :fc = 33:EndIf 
    Tposc(z-9,1)= z:Tposc(z-9,2)= X:Tposc(z-9,3)= Y:Tposc(z-9,4)= fc
    X =X +larg +1 :fc = fc +1 
  Next
  TextGadget(z,X,Y,larg,haut,"")
  Coul(z,$00A5FF,$0) 
  For c = 1 To (ngcm - ngcd)
   TextGadget(Tposc(c,1),Tposc(c,2),Tposc(c,3),larg,haut,"",#PB_Text_Center|#SS_CENTERIMAGE | #WS_DLGFRAME|#SS_NOTIFY)
   SetGadgetFont(Tposc(c,1),FontID1):Coul(Tposc(c,1),$0B86B8,$FF0000)
  Next
EndProcedure

Procedure brasse()
 If dpj = 1 
  For i = (ngcm - ngcd) To 1  Step-1
   irnd = Random(27,1)
   Swap Tposc(i,1),Tposc(irnd,1)
   Swap Tposc(i,4),Tposc(irnd,4)
 Next
 EndIf
 For zz = 1 To (ngcm - ngcd)
   ResizeGadget(Tposc(zz,1),Tposc(zz,2),Tposc(zz,3),#PB_Ignore,#PB_Ignore)
   SetGadgetText(Tposc(zz,1),Chr(Tposc(zz,4)))
 Next  
EndProcedure

Procedure Gscor(fj)
  l = 0
  Global Dim Tsc.s(0)
  OpenFile(110,GetTemporaryDirectory() + "PPscor")
  While Eof(110) = 0 
    l = l + 1:ReDim Tsc.s(l)
    Tsc.s(l) = ReadString(110) 
  Wend
  CloseFile(110)
  SortArray(Tsc.s(),#PB_Sort_NoCase)
  If fj = 1
    SetGadgetText(3,"Bravo! " + " Champion actuel " + StringField(Tsc.s(1),2,"*") + " " +StringField(Tsc.s(1),1,"*"))
  EndIf  
EndProcedure  

Procedure control()
  pt = 0
  For zz = ngcd To ngcm
    If GadgetX(zz) = Tposcor(zz-9,2) And GadgetY(zz) = Tposcor(zz-9,3)
      pt = pt + 1 
    Else
      Break
    EndIf
  Next
  If pt = (ngcm -ngcd)
   dpj = 0
   enrsc$ = GetGadgetText(45) + " " + "*" + nj$  + "*" + "  le " + FormatDate("%dd/%mm/%YYYY",Date())+ "*"
   OpenFile(110, GetTemporaryDirectory() + "PPscor")
    FileSeek(110, Lof(110)):WriteStringN(110,enrsc$)
   CloseFile(110)
   Gscor(1)
  EndIf
EndProcedure 

Procedure chrono()
 Static s,m,h
 s +1
 If s > 59:s = 0:m = m + 1:EndIf
 If m > 59:m = 0:h = h + 1:EndIf
 If h > 24:h = 0:EndIf
 If dpj = 0:s=0:m = 0:h = 0:EndIf
 If h < 10: h$ = "0" + Str(h):Else:h$ = Str(h):EndIf 
 If m < 10: m$ = "0" + Str(m):Else:m$ = Str(m):EndIf 
 If s < 10: s$ = "0" + Str(s):Else:s$ = Str(s):EndIf 
 SetGadgetText(45,"h " + h$ +" m "+ m$ + " s "+ s$)
EndProcedure 

Procedure nj(n)
 StickyWindow(1,0)   
 OpenWindow(60,WindowX(1)+ ((WindowWidth(1)- 350)/2),WindowY(1)+ ((WindowHeight(1)- 350)/2),350,180,"",#PB_Window_BorderLess|#NUL)
 SetWindowColor(60,$AFB74C)
 SetWindowLongPtr_(WindowID(60),#GWL_HWNDPARENT,FindWindow_(0,"program manager"))
 SetWindowLongPtr_(WindowID(60), #GWL_STYLE, GetWindowLongPtr_(WindowID(60), #GWL_STYLE) | #WS_DLGFRAME)
 SetWindowPos_(WindowID(60), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
 StickyWindow(60,1)
 TextGadget(61,10,10,325,27,"",#PB_Text_Center);titre
 SetGadgetFont(61,FontID2):Coul(61,$AFB74C,$00FFFF)
 ButtonGadget(66,260,145,80,25,"Retour")
 If n =1
   SetGadgetText(61,"Nouveau jeu")
   TextGadget(62,40,60,70,27,"Joueur:")
   SetGadgetFont(62,FontID2):Coul(62,$AFB74C,$CD0000)
   StringGadget(63,130,60,180,30,nj$)
   SetGadgetFont(63,FontID2):Coul(63,$AFB74C,$CD0000):SetActiveGadget(63)
   SetGadgetAttribute(63,#PB_String_MaximumLength,9)
   ButtonGadget(64,179,145,80,25,"Lance le Jeu")
 EndIf
 If n = 2
   SetGadgetText(61,"Scores")
   ListViewGadget(68,10,40,325,100)
   SetGadgetFont(68,FontID4):Coul(68,$008000,$FFFFFF)
   For tb = 1 To ArraySize(Tsc.s())
    AddGadgetItem(68,-1,RemoveString(Tsc.s(tb),"*"))
   Next  
 EndIf  
 If n =3
   SetGadgetText(61,"Informations")
   EditorGadget(67,20,40,305,100,#PB_Editor_ReadOnly|#PB_Editor_WordWrap)
   Coul(67,$008000,$FFFFFF)
   a1$ = "Bonjour" + #CRLF$ + "Ce jeu connu sous le nom de Pousse-pousse, consiste a remettre l'alphabet dans l'ordre."  + #CRLF$
   a2$ = "Un clique de souris déplace la case en lieu et place de la case vide." + #CRLF$ + "Le plus rapide est le champion."
   AddGadgetItem(67,-1, a1$ + a2$)
 EndIf  
 EndProcedure
 
hwnd= OpenWindow(1,0,0,806,503,"x",#PB_Window_BorderLess | #PB_Window_ScreenCentered)
SetWindowCallback(@WindowCallback())
StickyWindow(1,1)
SetWindowColor(1,$00A5FF)
prereq()
ContainerGadget(2,(WindowWidth(1)-706)/2,(WindowHeight(1)-403)/2,706,403,#PB_Container_Double)
SetGadgetColor(2,#PB_Gadget_BackColor,$1E69D2)
affc()
CloseGadgetList() 
brasse()
TextGadget(3,330,467,430,27,"",#PB_Text_Center)
SetGadgetFont(3,FontID3):Coul(3,$00A5FF,$008000)
TextGadget(40,100,10,125,27, "Informations",#SS_NOTIFY)
SetGadgetFont(40,FontID2):Coul(40,$00A5FF,$0)
TextGadget(41,310,10,100,27, "Scores",#SS_NOTIFY)
SetGadgetFont(41,FontID2):Coul(41,$00A5FF,$0)
TextGadget(42,460,10,140,27, "Nouveau jeu",#SS_NOTIFY)
SetGadgetFont(42,FontID2):Coul(42,$00A5FF,$0)
TextGadget(43,660,10,100,27, "Stop",#SS_NOTIFY)
SetGadgetFont(43,FontID2):Coul(43,$00A5FF,$0)
TextGadget(44,50,465,120,27,"Chronomètre")
SetGadgetFont(44,FontID2):Coul(44,$00A5FF,$1EDBFF)
SetGadgetFont(43,FontID2):Coul(43,$00A5FF,$0)
TextGadget(45,180,465,150,27,"")
SetGadgetFont(45,FontID2):Coul(45,$00A5FF,$1EDBFF)
AddWindowTimer(1,100,1)
Gscor(0)
Repeat
  Evenement =  WindowEvent()
  If dpj = 1
   ms = ElapsedMilliseconds() - tref
   If ms > 999:ms = 0:tref = ElapsedMilliseconds(): s = s + 1:chrono():EndIf
 EndIf 
  If Evenement  = #PB_Event_Timer And EventTimer() = 100
   cvx = GadgetX(ngcm):cvy = GadgetY(ngcm)
  EndIf 
  Select EventWindow() 
   Case 1
     If GetActiveWindow() <> 60
      If  Evenement = #WM_LBUTTONDOWN
        SendMessage_(WindowID(1), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
      EndIf  
     EndIf    
     If Evenement = #PB_Event_Gadget
      Select EventGadget() 
       Case 10 To ngcm -1
        If dpj = 1 ;****** a virer pour teste   
         top = 0
         cx = GadgetX(EventGadget()) 
         cy = GadgetY(EventGadget())
         If cvx - cx =101 And cvy - cy = 0:top =1:EndIf
         If cvx - cx = -101 And cvy - cy = 0:top =1:EndIf
         If cvx - cx = 0 And cvy - cy = 101:top =1:EndIf
         If cvx - cx = 0 And cvy - cy = -101:top =1:EndIf
         If top = 1
          Swap cvx,cx:Swap cvy,cy
          ResizeGadget(ngcm,cvx,cvy,#PB_Ignore,#PB_Ignore)
          ResizeGadget(EventGadget(),cx,cy,#PB_Ignore,#PB_Ignore)
         EndIf
          control()
     EndIf
   Case 40 ;infos
       nj(3)
   Case 41 ;scores
       nj(2) 
   Case 42;nj  
       dpj = 0:SetGadgetText(3,""):chrono():nj(1)
   Case 43
       Evenement = #PB_Event_CloseWindow ; On quitte
       Break
     EndSelect 
    EndIf
   Case 60;2emf 
       If Evenement = #PB_Event_Gadget
         Select EventGadget()
         Case 64
           dpj = 1:brasse()
           If GetGadgetText(63)<> ""
            nj$ = GetGadgetText(63)
           Else
            nj$ = "Anonyme"
          EndIf
          SetGadgetText(63,nj$)
          CloseWindow(60)
          StickyWindow(1,1)  
         Case 66
          CloseWindow(60)
          StickyWindow(1,1)   
        EndSelect 
      EndIf      
   EndSelect
 ForEver
 FreeArray(Tposcor()):FreeArray(Tposc()):FreeArray(Tsc.s())
End         
Comme l'ons dit chez moi dans la marine le sur c'est le simple. En programation c'est la même chose.
Amuse toi bien. Bonne journée
Michel
Cyrion81
Messages : 26
Inscription : jeu. 25/juin/2015 20:13

Re: Appel d'une Form dans la form principale?

Message par Cyrion81 »

Bonsoir,
Effectivement, mais je débutes alors s...
Très belle interface d'ailleurs, bravo
Répondre