PureBasic Code Form Helper

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

PureBasic Code Form Helper

Message par falsam »

PureBasic Code Form Helper.
Finaliser un seul gadget (le voir dans un inspecteur) ou finaliser la conception d'une fenêtre, c'est possible avec PureBasic Code Form Helper.

Installation.
Ajouter PureBasic Code Form Helper dans les outils de votre éditeur sans oublier de lui affecter une touche ou une combinaison de touches de raccourci pour le lancer depuis votre éditeur.

ImageImage

Comment ça fonctionne ?.
■ Avant de lancer PureBasic Code Form Helper, vous sélectionnez une portion de code contenant le ou les gadgets de votre fenêtre depuis l'éditeur officiel de Pure Basic. Vous n'êtes pas obligé de sélectionner la fenêtre contenant ces gadgets.

Image

■ Si vous codez depuis l'éditeur officiel de Pure Basic ou bien avec JaPBe V3 (Philippe Guntz a.k.a. gnozal), il est inutile de faire un copier (Ctrl + C) en mémoire. L'utilitaire s'en chargera.

■ Si vous codez depuis un éditeur tiers, copier votre sélection de code en mémoire (Ctrl + C).

■ Lancer PureBasic Code Form Helper depuis le menu Outils de votre IDE ou avec le racourci clavier que vous avez défini ou depuis le menu Outils.
Le code sélectionné sera analysé. Le ou les gadgets seront disponibles dans une liste déroulante. Les paramètres de chaque gadget sont affichés dans un inspecteur.

■ Quelques screenShots.

Une image globale avec la fenêtre en cours de mise au point. Le code est affiché à droite de l'inspecteur de gadget.

Image

Deux images montrant l'inspecteur de gadget sans l'affichage du code.
Image Image


Touches de raccourcis.
Vous pouvez mettre au point votre fenêtre soit en utilisant l'inspecteur de gadgets ou bien en utilisant les touches de raccourcis suivantes.

Changement de position (Haut/Bas/Gauche/Droit) d'un gadget.
Ctrl + Flèche Haut ou Ctrl + Flèche Bas Déplacer gadget vers le haut ou le bas.
Ctrl + Flèche Gauche ou Ctrl + Flèche Droite Déplacer un gadget vers la gauche ou la droite.

Changer la taille (Hauteur/largeur) d'un gadget.
Alt + Flèche Haut ou Ctrl + Flèche Bas Modifier la hauteur d'un gadget.
Alt + Flèche Gauche ou Alt + Flèche Droite Modifier la largeur d'un gadget.

Les modifications sont automatiquement mise à jour dans l'inspecteur mais aussi dans le code figurant à droite de l'inspecteur.

Il n'est pas possible de déplacer les gadgets avec la souris.

La touche Escape permet de fermer l'utilitaire.

Comment mettre à jour le code de votre éditeur Pure Basic?.
Une fois votre fenêtre finalisée, cliquer sur le bouton Copy pour copier le code en mémoire. Il est inutile de le sélectionner auparavant.

Fermez Code Form Helper et revenez à présent dans votre éditeur pour mettre à jour le code sélectionné (Ctrl + V).

:idea: NOUVEAUTÉ : Vous pouvez mettre à jour l'éditeur officiel en cliquant sur le bouton IDE Update comme vous le montre cette vidéo.
   https://www.youtube.com/watch?v=lRLL0UQku0c - ( < 30 secondes)

Téléchargement.

:arrow: Code Form Helper Versions 0.86.zip 216 ko
Dernière modification par falsam le lun. 21/oct./2013 18:08, modifié 17 fois.
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%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Code Form Helper (Bientôt disponible)

Message par Backup »

avec EPB , il suffira de mettre l'utilitaire dans le Dossier "Outils" de EPB .... pour le voir apparaitre dans le menu "outils" de EPB ;)
bonne idée ce code ..:)
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Code Form Helper (Bientôt disponible)

Message par Ar-S »

C'est un pureform inversée quoi ?
Excellente idée.
~~~~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: Code Form Helper (Bientôt disponible)

Message par Backup »

Ar-S a écrit :Excellente idée.
l'idée a deja été mise en oeuvre par Gnozal , dans PureForme

mais le fait de disposer d'un petit outils, sur demande, est vraiment excellent :)
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Code Form Helper (Bientôt disponible)

Message par falsam »

Dobro, Ar-S merci pour ces commentaires d'encouragement:)
Dobro a écrit :l'idée a deja été mise en oeuvre par Gnozal , dans PureForme
J'ai longtemps utilisé Pure Form et effectivement Pure Form pouvait analysé du code Pure Basic pour afficher une fenêtre de conception.
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%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Code Form Helper (Bientôt disponible)

Message par Backup »

c'est surtout l'idée de pouvoir ne sélectionner qu'une portion de code , qui me plait ...

en fait, je m'en veux de ne pas y avoir pensé avant toi :mrgreen: :lol:
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Code Form Helper (Bientôt disponible)

Message par kernadec »

bonsoir
@Dobro si tu y avais pense, tu aurais peut être pu l’appeler "Purelego" :mrgreen:

Cordialement
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Code Form Helper (Bientôt disponible)

Message par falsam »

Dobro a écrit :en fait, je m'en veux de ne pas y avoir pensé avant toi :mrgreen: :lol:
YeahhHHHHHHHHH :mrgreen:
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
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Code Form Helper (Bientôt disponible)

Message par Ar-S »

falsam a écrit :Dobro, Ar-S merci pour ces commentaires d'encouragement:)
Dobro a écrit :l'idée a deja été mise en oeuvre par Gnozal , dans PureForme
J'ai longtemps utilisé Pure Form et effectivement Pure Form pouvait analysé du code Pure Basic pour afficher une fenêtre de conception.
Je le sais bien, mais coupler un petit utile de se genre à l'ide de son choix ça me plait. et je te rejoins sur le coté "portion de code".
ça commence à faire un moment que je n'utilise plus de gestionnaire d'interface mais que je les fait à la main. Du coup ça va m'être utile pour peaufiner sans contraintes.
~~~~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 : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Code Form Helper (Bientôt disponible)

Message par falsam »

Ar-S a écrit :ça commence à faire un moment que je n'utilise plus de gestionnaire d'interface mais que je les fait à la main. Du coup ça va m'être utile pour peaufiner sans contraintes.
C'est aussi pour ça que je code cet utilitaire. Le positionnement manuel en modifiant juste le code est plutôt fastidieux quand il y a beaucoup de gadgets.
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
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Code Form Helper (Bientôt disponible)

Message par Kwai chang caine »

Cool !!!
Au debut comme dab, je voyais pas l'interet (Le temps que le sang alimente le haut... :oops:)
Mais c'est vrai que c'est une bonne idée (Une fois tout alimenté :mrgreen: )

Il commence a y avoir tellement d'utilitaires d'IDE et même d'IDE qu'on va s'y perdre...
Linux c'est de la roupie de samsonet à coté :lol:
Je pense surtout au nouveau qui arrive....ça doit faire peur 8O
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Code Form Helper

Message par Micoute »

Bonjour falsam et merci beaucoup.

J'ai installé ton Code Form Helper et je ne tarit pas d'éloges à son sujet, c'est très pratique et surtout très ergonomique, c'est vraiment du wysiwyg.

Merci beaucoup pour le partage, je comprend ton émotion et je suis même sûr que tu vas encore l'améliorer, pourtant comme ça, ça me suffit.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Code Form Helper

Message par Backup »

petit bug , ne prend pas en compte le scroll gadget :

test avec ce code

Code : Tout sélectionner

Enumeration
	#IMAGE_Content  ; stores the previous CanvasGadget content while the mouse is down
	#IMAGE_Color
EndEnumeration

Enumeration
	#GADGET_CanvasFond
	#GADGET_Canvas
	#GADGET_Box
	#GADGET_Clear
	#GADGET_Area
EndEnumeration

#win = 0
#statusbar = 0

Declare  DrawAction(x, y, EventType)
Declare  MyGadgetCallback()




Global CurrentColor, StartX, StartY

Procedure DrawAction(x, y, EventType)
	
	If StartDrawing(CanvasOutput(#GADGET_Canvas))
		
		DrawImage(ImageID(#IMAGE_Content), 0, 0)
		Box(StartX, StartY, x-StartX, y-StartY, CurrentColor)
		
		StopDrawing()
	EndIf
	
EndProcedure


CurrentColor = RGB(120,120,120)
CreateImage(#IMAGE_Color, 35, 35, 24)
CreateImage(#IMAGE_Content, 380, 380, 24)

If OpenWindow(#win, 0, 0, 800, 600, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	;SetWindowCallback(@MyWindowCallback())
	
	
	If ScrollAreaGadget(#GADGET_Area, 70, 70, WindowWidth(#win) - 90, WindowHeight(#win) - 90, WindowWidth(#win), WindowHeight(#win))
		CanvasGadget(#GADGET_Canvas, 110, 110, 380, 380, #PB_Canvas_Keyboard)
		BindGadgetEvent(#GADGET_Area, @MygadgetCallback())
		CloseGadgetList()
	EndIf
	
	ButtonGadget(#GADGET_Box,    10, 10, 50, 25, "Box",    #PB_Button_Toggle)
	ButtonGadget(#GADGET_Clear,  10, 40, 50, 25, "Clear")
	
	
	SetGadgetState(#GADGET_Box, 1)
	SetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Cursor, #PB_Cursor_Cross)
	SetActiveGadget(#GADGET_Canvas)
	
	CreateStatusBar(#statusbar,WindowID(#win))
	AddStatusBarField(200)
	AddStatusBarField(200)
	AddStatusBarField(200)
	
	Repeat
		Event = WaitWindowEvent(2)   
		EventGadget = EventGadget()
		
		If Event = #PB_Event_Gadget
			
			Select EventGadget()
				
				Case #GADGET_Canvas
				
				X = GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_MouseX)
				Y = GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_MouseY)
				
				If Start = 0
					If GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Buttons) & (#PB_Canvas_LeftButton|#GADGET_Area)
						Start =1             
						StartX = X
						StartY = Y
					EndIf
				EndIf
				
				If paint
					DrawAction(X, Y, EventType())
				EndIf
				StatusBarText(#statusbar, 1, "X : "+Str(x)+" / Y :"+Str(y))
				
				Type = EventType()
				
				Select EventType()
					
					Case #PB_EventType_LeftButtonDown
					paint = 1
					If StartDrawing(ImageOutput(#IMAGE_Content))
						DrawImage(GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Image), 0, 0)
						StopDrawing()
					EndIf
					
					StartX = X
					StartY = Y
					DrawAction(X, Y, EventType())
					
					
					Case #PB_EventType_LeftButtonUp
					DrawAction(X, Y, EventType())                       
					paint = 0
					Start = 0
					
					Case #PB_EventType_MouseMove
					If GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Buttons) & (#PB_Canvas_LeftButton|#GADGET_Area)
						If paint = 0
							paint = 1
							If StartDrawing(ImageOutput(#IMAGE_Content))
								DrawImage(GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Image), 0, 0)
								StopDrawing()
							EndIf
						EndIf
						DrawAction(X, Y, EventType())           
					EndIf
					
				EndSelect
				
				Case #GADGET_Clear
				If StartDrawing(CanvasOutput(#GADGET_Canvas))
					Box(0, 0, 380, 380, $FFFFFF)
					StopDrawing()
				EndIf
				SetActiveGadget(#GADGET_Canvas)
				
				
			EndSelect
			
		EndIf
		
	Until Event = #PB_Event_CloseWindow
	
EndIf
Procedure MygadgetCallback()
	Result = #PB_ProcessPureBasicEvents
debug EventGadget()
	Select EventGadget()
		
		Case #WM_LBUTTONUP         : Debug "mouse LMB up"
		DrawAction(X, Y, EventType())                       
		paint = 0
		Start = 0
		
		Case #WM_LBUTTONDOWN       : Debug "mouse LMB down"
		paint = 1
		If StartDrawing(ImageOutput(#IMAGE_Content))
			DrawImage(GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Image), 0, 0)
			StopDrawing()
		EndIf
		
		StartX = X
		StartY = Y
		DrawAction(X, Y, EventType())
		
		
		Case #WM_MOUSEMOVE  :Debug "mouse move"
		paint = 1
		If StartDrawing(ImageOutput(#IMAGE_Content))
			DrawImage(GetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Image), 0, 0)
			StopDrawing()
StatusBarText(#statusbar, 1, "X : "+Str(x)+" / Y :"+Str(y))
		EndIf
		
		
	EndSelect  
	ProcedureReturn Result
EndProcedure
; EPB


Dernière modification par Backup le jeu. 10/oct./2013 10:30, modifié 1 fois.
Avatar de l’utilisateur
falsam
Messages : 7321
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Code Form Helper

Message par falsam »

Houla que de lecture Dobro :)
Dobro a écrit :petit bug , ne prend pas en compte le scroll gadget :
Deux des paramétres sont des variables (WindowWidth(#win) et WindowWidth(#win)) dont je ne connais pas la valeur.

Code : Tout sélectionner

OpenWindow(#win, 0, 0, 800, 600, "CanvasGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	;SetWindowCallback(@MyWindowCallback())
	
	
	If ScrollAreaGadget(#GADGET_Area, 70, 70, WindowWidth(#win) - 90, WindowHeight(#win) - 90, WindowWidth(#win), WindowHeight(#win))
		CanvasGadget(#GADGET_Canvas, 110, 110, 380, 380, #PB_Canvas_Keyboard)
		BindGadgetEvent(#GADGET_Area, @MygadgetCallback())
		CloseGadgetList()
	EndIf
	
	ButtonGadget(#GADGET_Box,    10, 10, 50, 25, "Box",    #PB_Button_Toggle)
	ButtonGadget(#GADGET_Clear,  10, 40, 50, 25, "Clear")
	
	
	SetGadgetState(#GADGET_Box, 1)
	SetGadgetAttribute(#GADGET_Canvas, #PB_Canvas_Cursor, #PB_Cursor_Cross)
	SetActiveGadget(#GADGET_Canvas)
	
	CreateStatusBar(#statusbar,WindowID(#win))
Encore que dans ce cas je pourrais pousser l'analyse un peu plus. Mais si ce sont des variables non liés à des gadgets alors dans ce cas c'est foutu.
Dobro a écrit :pourrai-je distribuer ton outils avec EPB ?
Bien sur et avec plaisir Dobro :)
Dobro a écrit :pourrai tu aussi le rendre compatible avec EPB 2.48 (bientot dispo )
Joli le code qui permet de dialoguer avec EPB. Je regarde comment ça fonctionne.
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%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Code Form Helper

Message par Backup »

falsam a écrit :Joli le code qui permet de dialoguer avec EPB. Je regarde comment ça fonctionne.
gaffe , c'est pour la Version 2.48 qui n'est pas encore en ligne

en fait j'ai surtout apporté des constantes , et changé un peut l'ordre des messages ...
si tu veux testé avec la Version 2.46 actuellement en ligne ,

ces constantes devrai marcher ,mais pas les suivantes

Code : Tout sélectionner


Enumeration 
	#epb_pos_curs ;pose au curseur
	#epb_rempl ;remplace ligne en cour
	#epb_insert ;insert une ligne
	#epb_saut_to_ligne ; saut a la ligne
	#epb_pos_curs_x ;position x du curseur
	#epb_selection ; creer une selection
	#epb_rempl_select ;remplace la selection
	#epb_line_to_clipboard ; la ligne en cours  vers le clipboard
..................................
sinon , attends un peu que je sorte la Version 2.48 :)
Répondre