[Résolu] Editeur visuel

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

[Résolu] Editeur visuel

Message par Micoute »

Ne voulant pas perdre mes fichiers créés avec PureForm, j'essaie de recréer cet admirable outil en essayant de rajouter les nouveaux gadgets des versions à venir, bien évidemment, je suis bien loin du résultat, car déjà, je ne sais même pas, comment faire, en cliquant sur un buttonImage, aller afficher ce gadget que je viens de sélectionner, c'est pourquoi, j'aimerais bien qu'on m'aide.

Je joins l'adresse de téléchargement de mon projet : http://dl.free.fr/pJCwgb6JY

Je vous remercie de tout coeur!
Dernière modification par Micoute le mar. 11/déc./2012 13:42, modifié 3 fois.
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 !
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Editeur visuel

Message par MLD »

Bonjour Micoute

8O je ne comprend pas pourquoi tu perdrais tes fichiers créés avec PureForm :?:
Personellement je n'utilise pas les éditeurs visuel, car je n'aime pas le code issu de ceux-ci.
Je me suis fait une petite biblothèque de codes Type, et le copier collé marche trés bien. Comme ceci je vais plus vite qu'avec les éditeurs. :wink:
Compile ce code c'est une règle qui permet de ce facilité la vie pour la disposition des gadgets dans une fenêtre.

Code : Tout sélectionner

;///////////////////////////////
; Mesure 1.1 : 27/12/2009 - by Z@ph0d
; PB 4.40
; Modifications MLD le 01/01/2010
;///////////////////////////////
EnableExplicit

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #Button_0
  #text_1
  #text_2
  #combo_1
  #trackbar_0
  #checkbox_0
EndEnumeration

Global Largeur = 405
Procedure.i gettpp(f.i)
Protected hdc.i,r.i
;
hdc=GetDC_(GetDesktopWindow_())
If f=0
r= 1440/GetDeviceCaps_(hdc,#LOGPIXELSX)
Else
r= 1440/GetDeviceCaps_(hdc,#LOGPIXELSY)
EndIf
ReleaseDC_(GetDesktopWindow_(),hdc)
;
ProcedureReturn r
EndProcedure

Procedure ruler()
Protected  px.i,py.i,i.i,x.i,w.i,f.i
    ;
    UpdateWindow_(WindowID(#window_0))
    ;
    f=GetGadgetState(#combo_1)
    Select f
    Case 0
    w=1440/2.54+1
    Case 1
    w=1440
    EndSelect
    ;
    px= (w/gettpp(0))/10
    py= (w/gettpp(1))/10
    ;
    x=0
    ;   
    StartDrawing(WindowOutput(#window_0))
    DrawingFont(FontID(1))
    ;
    If f<>2
    For i=0 To WindowWidth(#window_0) 
    If i%10=0
    Line(x,0,1,10)
    DrawText(x-2,12,Str(i/10),#Black,GetWindowColor( #Window_0))
    
    Line(x,WindowHeight(#window_0)-1,1,-10)
    DrawText(x-2,WindowHeight(#window_0)-20,Str(i/10),#Black,GetWindowColor( #Window_0)) 
   
    ElseIf i%5=0
    Line (x,0,1,5)
    Line(x,WindowHeight(#window_0)-1,1,-5)
    Else
    Line(x,0,1,2)
    Line (x,WindowHeight(#window_0)-1,1,-2)
    EndIf
    ;
    x+px
    Next
    Else
    For i=0 To WindowWidth(#window_0) 
    If i%20=0
    Line(x,0,1,10)
    DrawText(x-2,12,Str(x),#Black,GetWindowColor( #Window_0)) 
    Line(x,WindowHeight(#window_0)-1,1,-10)
    DrawText(x-2,WindowHeight(#window_0)-20,Str(x),#Black,GetWindowColor( #Window_0)) 
    ElseIf i%10=0
    Line (x,0,1,5)
    Line(x,WindowHeight(#window_0)-1,1,-5)
    EndIf
    ;
    x+1
    Next
    EndIf
    ;
    x=30
    If f<>2
    For i=0 To WindowHeight(#window_0) 
    If i%10=0
    Line(1,x,10,1)
    DrawText(15,x-5,Str(i/10),#Black,GetWindowColor( #Window_0)) 
    Line(WindowWidth(#window_0)-1,x,-10,1)
    DrawText(WindowWidth(#window_0)-20,x-5,Str(i/10),#Black,GetWindowColor( #Window_0)) 
    ElseIf i%5=0
    Line (1,x,5,1)
    Line(WindowWidth(#window_0)-1,x,-5,1)
    Else
    Line(1,x,2,1)
    Line (WindowWidth(#window_0)-1,x,-2,1)
    EndIf
    ;
    x+py
    If x>WindowHeight(#window_0)-30
    Break
    EndIf
    Next
    Else
    For i=0 To WindowHeight(#window_0) 
    If i%20=0
    Line(1,x,10,1)
    DrawText(15,x-5,Str(x-30),#Black,GetWindowColor( #Window_0)) 
    Line(WindowWidth(#window_0)-1,x,-10,1)
    DrawText(WindowWidth(#window_0)-20,x-5,Str(x-30),#Black,GetWindowColor( #Window_0)) 
    ElseIf i%10=0
    Line (1,x,5,1)
    Line(WindowWidth(#window_0)-1,x,-5,1)
    EndIf
    ;
    x+1
    If x>WindowHeight(#window_0)-30
    Break
    EndIf
    Next
    EndIf
    ;
    StopDrawing()
EndProcedure


Procedure OpenWindow_Window_0()
   If OpenWindow(#Window_0, 450, 200, Largeur, 100, "",#PB_Window_BorderLess|#WS_BORDER|#WS_THICKFRAME)
   SetWindowColor( #Window_0,$E3DFE0)
   StickyWindow(#window_0,1)
  ;transparence:
  SetWindowLong_(WindowID(#window_0), #GWL_EXSTYLE, GetWindowLong_(WindowID(#window_0), #GWL_EXSTYLE) | #WS_EX_LAYERED)
  SetLayeredWindowAttributes_(WindowID(#window_0), 0, 120, #LWA_ALPHA)
  
    TextGadget(#Text_1, 30, 30, 70, 20, "Transparence")
    TrackBarGadget(#TrackBar_0, 20, 45, 150, 30, 120, 255);, #PB_TrackBar_Ticks)
    SetGadgetState(#trackbar_0,120)
     ComboBoxGadget(#Combo_1, 190, 40, 70, 20)
     AddGadgetItem(#combo_1, -1,"cm")
     AddGadgetItem(#combo_1, -1,"inch")
     AddGadgetItem(#combo_1, -1,"pixel")
     SetGadgetState(#combo_1,2)
     ButtonGadget(#Button_0, 280, 55, 50, 20, "Quitter")
     CheckBoxGadget(#CheckBox_0, 280, 32, 80, 15, "Second plan")
    ;
     LoadFont(1, "small font", 7,#PB_Font_HighQuality) 
    ;
    ruler()
  EndIf
EndProcedure

;////////////////////////////////////////
;
OpenWindow_Window_0()
SmartWindowRefresh(#window_0,1)

Repeat
  Select WaitWindowEvent()
    ; ///////////////////
    Case #PB_Event_Gadget
      Select EventGadget()
       Case #Button_0
        CloseWindow(#window_0)
        Break
        Case #trackbar_0
        SetLayeredWindowAttributes_(WindowID(#window_0), 0, GetGadgetState(#trackbar_0), #LWA_ALPHA)
       Case #combo_1
        If EventType()=#CBN_SELCHANGE
         InvalidateRect_(WindowID(#Window_0), 0, 1)
         ruler()
        EndIf
       Case #checkbox_0
        If GetGadgetState(#checkbox_0)
         StickyWindow(#window_0,0)
        Else
         StickyWindow(#window_0,1)
        EndIf
      EndSelect
    ; ////////////////////////
    Case #WM_SIZE
     InvalidateRect_(WindowID(#Window_0), 0, 1)
     ruler()
    Case #WM_LBUTTONDOWN 
      SendMessage_(WindowID(#window_0), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) 
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver

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

Re: Editeur visuel

Message par Micoute »

Je me suis peut-être mal expliqué, je souhaite rester en conformité avec PureForm pour pouvoir utiliser les scripts fabriqués par lui, tout en pouvant rajouter les nouveaux gadgets sortant au gré des versions PureBasic et c'est tout !

Grand merci à toi et à tous les autres de m'aider
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 !
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Editeur visuel

Message par Ar-S »

C'est un beau projet mais qui demande trop d'investissement pour ma part.
Ton interface est bien faite même si contrairement à pureform, j'aurai fait une fenêtre maitresse et une fenêtre aperçu, rien de plus.
As tu analyser les fichiers projets.
ça a l'air pas trop dur à relire et réutiliser.
Ils sont sous la forme

Code : Tout sélectionner

PureFORM_Project_Begin

Project¶base64

Window¶1¶#Win¶348782593¶#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget¶

ButtonGadget¶1¶#GADGET¶1¶-1¶-1¶0¶0¶0¶0¶0¶¶Base64 

TextGadget¶5¶#TXT¶1¶-1¶-1¶0¶0¶26¶0¶513¶#PB_Text_Center|#SS_CENTERIMAGE¶Texte contenu dans le gadget

PureFORM_Project_End
Bonne chance.

A toi de classer toutes les données en récupérant ligne par ligne les options (StringField)
~~~~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
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Editeur visuel

Message par Micoute »

Je pense que pour la lecture des scripts, c'est comme ça que je conçois de faire, mais mon problème c'est que je voudrais aussi en écrire, mais pour cela, il faudrait que je puisse mettre des gadgets sur ma fenêtre de création et ça, hélas, je ne sais pas le faire !

Merci pour ta contribution.
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 !
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Editeur visuel

Message par Ar-S »

ça sent les callback et thread à gogo, avec de grosses pincées d'API. Je passe mon tour.
~~~~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
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Editeur visuel

Message par Micoute »

Ar-S a écrit :ça sent les callback et thread à gogo, avec de grosses pincées d'API. Je passe mon tour.
Ok ! Merci quand même !
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 !
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Editeur visuel

Message par falsam »

Micoute a écrit :il faudrait que je puisse mettre des gadgets sur ma fenêtre de création et ça, hélas, je ne sais pas le faire
Regarde ce lien http://www.purebasic.fr/french/viewtopi ... 12#p128312

Les sources sont fournis. Clic droit de la souris pour le menu contextuel.
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: Editeur visuel

Message par Kwai chang caine »

C'est vrai que c'est tentant d'essayer de faire le sien.
Le tiens etait deja bien avancé, tu utilises les gadgets que tu resizes, je crois que j'avais vu cette methode par patrick (de memoire).
Je ne sais pas si le Visual designer natif en faisait de même, la fluidité du resizing est bluffante.

Le plus dur doit etre le PanelGadget je pense...

C'est vrai qu'un convertisseur de format aurait aussi été genial, car il commence a y avoir un sacré nombre de designer.
Moi j'avais pensé que si je me lançait dans cette grande aventure, de pouvoir sortir un code générique en plus du code PB, renseignant juste le type de controle avec ses dimensions et coordonnées en TXT, que n'importe qui pourrait utiliser par la suite même pour un autre langage qui n'aurait pas son designer.

J'avais oublié ton Tiny designer et je me rappellais plus non plus pour la regle
Merci Falsam 8)
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: Editeur visuel

Message par Micoute »

falsam a écrit :
Micoute a écrit :il faudrait que je puisse mettre des gadgets sur ma fenêtre de création et ça, hélas, je ne sais pas le faire
Regarde ce lien http://www.purebasic.fr/french/viewtopi ... 12#p128312

Les sources sont fournis. Clic droit de la souris pour le menu contextuel.
Ton code est franchement génial et je l'avais déjà dans mes archives et comme à l'époque j'étais complètement novice, puisque j'en étais à mon époque d'apprentissage du langage PureBasic, je n'avais même pas remarqué que je détenais une pépite. Je sens renaître l'espoir d'aller plus loin dans mon entreprise et là, franchemnt, ce sera bien grâce à toi !

Je te remercie particulièrement, ainsi que tous ceux qui m'ont soutenu dans cette épreuve.
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 !
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Editeur visuel

Message par Micoute »

Je viens encore vous solliciter parce que cette fois ci, j'ai un problème avec le PanelGadget, car je voudrais ajouter un menu pour ajouter des onglets à mon panneau quand je le sélectionne !

Je vous remercie tous d'avance pour votre aide
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 !
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: Editeur visuel

Message par jbernard13 »

Merci MLD pour ta partage j'ai adorer ta regle
Jbernard13
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Editeur visuel

Message par MLD »

@ jbernard13

Le code est en grande partie de Z@ph0d. :lol:
Rendons a Z@ph0d ce qui n'apartient pas a César. :mrgreen:
gnozal
Messages : 832
Inscription : mar. 07/déc./2004 17:35
Localisation : France
Contact :

Re: Editeur visuel

Message par gnozal »

Micoute a écrit :Je me suis peut-être mal expliqué, je souhaite rester en conformité avec PureForm pour pouvoir utiliser les scripts fabriqués par lui, tout en pouvant rajouter les nouveaux gadgets sortant au gré des versions PureBasic et c'est tout !
Pour information, on peut ajouter des nouveaux gadgets dans PureFORM à l'aide du 'custom' gadget.
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Editeur visuel

Message par Micoute »

gnozal a écrit :
Micoute a écrit :Je me suis peut-être mal expliqué, je souhaite rester en conformité avec PureForm pour pouvoir utiliser les scripts fabriqués par lui, tout en pouvant rajouter les nouveaux gadgets sortant au gré des versions PureBasic et c'est tout !
Pour information, on peut ajouter des nouveaux gadgets dans PureFORM à l'aide du 'custom' gadget.
Merci beaucoup pour cette information capitale !
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 !
Répondre