Module pour Menu onglet

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Module pour Menu onglet

Message par microdevweb »

Pour avoir ceci
Image

Image

Lien pour le module les image et le petit programme de teste
http://www.partage-facile.com/3COG9Q0XZ ... r.zip.html
Et le code

Code : Tout sélectionner

XIncludeFile "ToolsBar.pbi"
DeclareModule MainForm
       Enumeration FormGadget
             #Tools
             #Canvas
       EndEnumeration
      Global Id
      Declare Open()
EndDeclareModule
Module MainForm
      UsePNGImageDecoder()
      Global  CurrentDirectory$=GetCurrentDirectory()
     Enumeration Onglet
            #Main
            #DataBase
      EndEnumeration
      Enumeration Img
            #Img_NewFile
            #Img_OpenFile
            #Img_SaveFile
            #Img_SaveAsFile
            #Img_CloseProject
            #Img_EditProject
            #Img_Parameters
            #Help_NewProject
            #Help_OpenProject
            #Help_EditProject
            #Help_CloseProject
            #Help_SaveProject
            #Help_SaveAsProject
            #Help_Parameters
            #Img_NewData
            #Img_EditData
            #Img_DeleteData
            #Help_NewFile
            #Help_EditFile
            #Help_DeleteFile
            #Img_Hand
            #Help_SelectedMode
            #Img_Link
            #Help_LinkMode
            #Img_Grid
            #Help_Grid
            #Logo
      EndEnumeration
      Enumeration ImageButton
            #NewFile
            #OpenFile
            #EditProject
            #SaveFile
            #SaveAsFile
            #CloseProject
            #Parameters
            #NewData
            #EditData
            #DeleteData
            #SelectedMode
            #LinkMode
            #GridOnOf
            #GridSize
      EndEnumeration
      CatchImage(#Img_NewFile,?Img_NewFile)
      CatchImage(#Img_OpenFile,?Img_OpenFile)
      CatchImage(#Img_SaveFile,?Img_SaveFile)
      CatchImage(#Img_SaveAsFile,?Img_SaveAsFile)
      CatchImage(#Img_CloseProject,?Img_CloseProject)
      CatchImage(#Img_EditProject,?Img_EditProject)
      CatchImage(#Img_Parameters,?Img_Parameters)
      CatchImage(#Help_NewProject,?Help_NewProject)
      CatchImage(#Help_OpenProject,?Help_OpenProject)
      CatchImage(#Help_EditProject,?Help_EditProject)
      CatchImage(#Help_CloseProject,?Help_CloseProject)
      CatchImage(#Help_SaveProject,?Help_SaveProject)
      CatchImage(#Help_SaveAsProject,?Help_SaveAsProject)
      CatchImage(#Help_Parameters,?Help_Parameters)
      CatchImage(#Img_NewData,?Img_NewData)
      CatchImage(#Img_EditData,?Img_EditData)
      CatchImage(#Img_DeleteData,?Img_DeleteData)
      CatchImage(#Help_NewFile,?Help_NewFile)
      CatchImage(#Help_EditFile,?Help_EditFile)
      CatchImage(#Help_DeleteFile,?Help_DeleteFile)
      CatchImage(#Img_Hand,?Img_Hand)
      CatchImage(#Help_SelectedMode,?Help_SelectedMode)
      CatchImage(#Img_Link,?Img_Link)
      CatchImage(#Help_LinkMode,?Help_LinkMode)
      CatchImage(#Img_Grid,?Img_Grid)
      CatchImage(#Help_Grid,?Help_Grid)
      CatchImage(#Logo,?Img_Logo)
      Procedure NewProject()
            Debug "New project"
      EndProcedure
      Procedure   SelectOnglet(IdOnglet.i)
            Debug "Onglet: "+Str(IdOnglet)
      EndProcedure
      Procedure ModeSelect()
            If ToolsBar::GetImageButtonSate(#Tools,#DataBase,1,#SelectedMode)=#True
                  ToolsBar::SetImageButtonSate(#Tools,#DataBase,1,#LinkMode,#False)
            EndIf
      EndProcedure
      Procedure ModeLink()
            If ToolsBar::GetImageButtonSate(#Tools,#DataBase,1,#LinkMode)=#True
                  ToolsBar::SetImageButtonSate(#Tools,#DataBase,1,#SelectedMode,#False)
            EndIf
      EndProcedure
      Procedure SpinMangement(Value)
            Debug "Value of spin: "+Str(Value)
      EndProcedure
      Procedure Open()
            Protected W,H,X,Y
            Protected Flag=#PB_Window_SystemMenu|#PB_Window_Maximize|#PB_Window_ScreenCentered|#PB_Window_MaximizeGadget
            Id=OpenWindow(#PB_Any,0,0,800,600,"Main form",Flag) 
            W=WindowWidth(Id)
            ToolsBar::Init(#Tools,Id,0,0,-1,100)
            ToolsBar::AddOnglet(#Tools,#Main,"Main",#True)
            ToolsBar::AddGroupe(#Tools,#Main,304,"Project")
            ToolsBar::AddImageButton(#Tools,#Main,0,#NewFile,#Img_NewFile,2,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#Main,0,#NewFile,#Help_NewProject,400,100)
            ToolsBar::AddImageButtonEventProcedure(#Tools,#Main,0,#NewFile,@NewProject())
            ToolsBar::AddImageButton(#Tools,#Main,0,#OpenFile,#Img_OpenFile,50,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#Main,0,#OpenFile,#Help_OpenProject,402,102)
            ToolsBar::AddImageButton(#Tools,#Main,0,#EditProject,#Img_EditProject,100,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#Main,0,#EditProject,#Help_EditProject,402,102)
            ToolsBar::AddImageButton(#Tools,#Main,0,#CloseProject,#Img_CloseProject,150,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#Main,0,#CloseProject,#Help_CloseProject,360,100)
            ToolsBar::AddImageButton(#Tools,#Main,0,#SaveFile,#Img_SaveFile,200,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#Main,0,#SaveFile,#Help_SaveProject,360,100)
            ToolsBar::AddImageButton(#Tools,#Main,0,#SaveAsFile,#Img_SaveAsFile,250,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#Main,0,#SaveAsFile,#Help_SaveAsProject,360,130)
            ToolsBar::AddGroupe(#Tools,#Main,100,"Parameters")
            ToolsBar::AddImageButton(#Tools,#Main,1,#Parameters,#Img_Parameters,25,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#Main,1,#Parameters,#Help_Parameters,360,96)
            ToolsBar::AddOnglet(#Tools,#DataBase,"Data-Base Management")
            ToolsBar::AddGroupe(#Tools,#DataBase,154,"Files functions")
            ToolsBar::AddImageButton(#Tools,#DataBase,0,#NewData,#Img_NewData,0,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#DataBase,0,#NewData,#Help_NewFile,400,100)
            ToolsBar::AddImageButton(#Tools,#DataBase,0,#EditData,#Img_EditData,50,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#DataBase,0,#EditData,#Help_EditFile,402,102)
            ToolsBar::AddImageButton(#Tools,#DataBase,0,#DeleteData,#Img_DeleteData,100,2,50,50)
            ToolsBar::AddImageButtonHelp(#Tools,#DataBase,0,#DeleteData,#Help_DeleteFile,400,100)
            ToolsBar::AddGroupe(#Tools,#DataBase,130,"Selected mode")
            ToolsBar::AddImageButton(#Tools,#DataBase,1,#SelectedMode,#Img_Hand,10,2,50,50,#True)
            ToolsBar::AddImageButtonHelp(#Tools,#DataBase,1,#SelectedMode,#Help_SelectedMode,563,184)
            ToolsBar::AddImageButtonEventProcedure(#Tools,#DataBase,1,#SelectedMode,@ModeSelect())
            ToolsBar::AddImageButton(#Tools,#DataBase,1,#LinkMode,#Img_Link,60,2,50,50,#True)
            ToolsBar::AddImageButtonHelp(#Tools,#DataBase,1,#LinkMode,#Help_LinkMode,563,184)
            ToolsBar::AddImageButtonEventProcedure(#Tools,#DataBase,1,#LinkMode,@ModeLink())
            ToolsBar::AddGroupe(#Tools,#DataBase,135,"Grid functions")
            ToolsBar::AddImageButton(#Tools,#DataBase,2,#GridOnOf,#Img_Grid,10,2,50,50,#True)
            ToolsBar::AddImageButtonHelp(#Tools,#DataBase,2,#GridOnOf,#Help_Grid,315,121)
            ToolsBar::AddLabel(#Tools,#DataBase,2,65,0,50,25,"Grid size",ToolsBar::#Middle)
            ToolsBar::SetLabelFont(LoadFont(#PB_Any,"Arial",9),0,$E28422)
            ToolsBar::AddSpin(#Tools,#DataBase,2,#GridSize,65,20,50,25,5,30,15)
            ToolsBar::AddSpinEventProcedure(#Tools,#DataBase,2,#GridSize,@SpinMangement())
            ToolsBar::AddOngletProcedure(#Tools,@SelectOnglet())
            ToolsBar::SetHelpOnOf(#Tools)
            ToolsBar::Show(#Tools)
            
            W=WindowWidth(Id)
            H=WindowHeight(Id)-100
            CanvasGadget(#Canvas,0,100,W,H)
            X=(W/2)-300
            Y=(H/2)-110
            StartDrawing(CanvasOutput(#Canvas))
            Box(0,0,W,H,$AAE8EE)
            DrawingMode(#PB_2DDrawing_AlphaClip)
            DrawImage(ImageID(#Logo),X,Y)
            StopDrawing()
      EndProcedure
      
      DataSection
            Img_NewFile: :IncludeBinary "IMG\NewProject.png"
            Img_OpenFile: :IncludeBinary "IMG\OpenProject.png"
            Img_SaveFile: :IncludeBinary "IMG\SaveProject.png"
            Img_SaveAsFile: :IncludeBinary "IMG\SaveAsProject.png"
            Img_CloseProject: :IncludeBinary "IMG\CloseProject.png"
            Img_EditProject: :IncludeBinary "IMG\EditProject.png"
            Img_Parameters: :IncludeBinary "IMG\Parametre.png"
            Help_NewProject: :IncludeBinary "HELP\Newproject.png"
            Help_OpenProject: :IncludeBinary "HELP\Openproject.png"
            Help_EditProject: :IncludeBinary "HELP\Editproject.png"
            Help_CloseProject: :IncludeBinary "HELP\Closeproject.png"
            Help_SaveProject: :IncludeBinary "HELP\Saveproject.png"
            Help_SaveAsProject: :IncludeBinary "HELP\SaveAsproject.png"
            Help_Parameters: :IncludeBinary "HELP\Parameters.png"
            Img_NewData: :IncludeBinary "IMG\NewFile.png"
            Img_EditData: :IncludeBinary "IMG\EditFile.png"
            Img_DeleteData: :IncludeBinary "IMG\DeleteFile.png"
            Help_NewFile: :IncludeBinary "HELP\NewFile.png"
            Help_EditFile: :IncludeBinary "HELP\EditFile.png"
            Help_DeleteFile: :IncludeBinary "HELP\DeleteFile.png"
            Img_Hand: :IncludeBinary "IMG\ModeSelect.png"
            Help_SelectedMode: :IncludeBinary "HELP\SelectMode.png"
            Img_Link: :IncludeBinary "IMG\LinkSelect.png"
            Help_LinkMode: :IncludeBinary "HELP\LinkMode.png"
            Img_Grid: :IncludeBinary "IMG\Grid.png"
            Help_Grid: :IncludeBinary "HELP\GridOnOf.png"
            Img_Logo: :IncludeBinary "IMG\Microdev.png"
      EndDataSection
 EndModule
 
 Global gEvent
 MainForm::Open()
 Repeat
       gEvent=WaitWindowEvent()
       Select gEvent
             Case #PB_Event_Gadget
                   If ToolsBar::Event(MainForm::#Tools,gEvent)
                         ToolsBar::Show(MainForm::#Tools)
                   EndIf
       EndSelect
       
 Until gEvent=#PB_Event_CloseWindow
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Module pour Menu onglet

Message par Kwai chang caine »

Alors la...chapeau !!!
Image
SPLENDID !!!

Je ne sais pas si ton RAD aura cette tête, et si surtout il sera open source, mais ça fait déjà rêver ce que tu fait 8O
Merci beaucoup de ce partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1800
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Module pour Menu onglet

Message par microdevweb »

Merci Kwai chang caine
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
SPH
Messages : 4726
Inscription : mer. 09/nov./2005 9:53

Re: Module pour Menu onglet

Message par SPH »

microdevweb a écrit :Merci Kwai chang caine
KCC pour les intimes 8)
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Module pour Menu onglet

Message par falsam »

SPH a écrit :KCC pour les intimes 8)
Tu l'as dit ..... c'est que pour les intimes :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.03 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
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Module pour Menu onglet

Message par Kwai chang caine »

MicroDevWeb a écrit :Merci Kwai chang caine
8)
Mon copain a écrit :Tu l'as dit ..... c'est que pour les intimes
T'as compris SPH ??? :mrgreen: :lol:
Image
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
falsam
Messages : 7244
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Module pour Menu onglet

Message par falsam »

Pardon pour cette intervention SPH, Kwai chang caine m'a fait comprendre en MP que vous étiez effectivement trés proches. MouahhHHHhhh :mrgreen:

PS : Décidément faut que je m'immisce un peu moins dans les posts :mrgreen:
Configuration : Windows 11 Famille 64-bit - PB 6.03 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
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Module pour Menu onglet

Message par MetalOS »

Sympas, merci du partage.
Avatar de l’utilisateur
venom
Messages : 3072
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Re: Module pour Menu onglet

Message par venom »

Oui merci pour ton partage.

SPH = SePhirotH pour les intimes :lol:






@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
MetalOS
Messages : 1492
Inscription : mar. 20/juin/2006 22:17
Localisation : Lorraine
Contact :

Re: Module pour Menu onglet

Message par MetalOS »

Le lien pour les ressources ne fonctionne plus sur le premier post.
Répondre