création d'un editeur de boite de dialogue

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

jbernard13 a écrit :
SPH a écrit :
jbernard13 a écrit :je veux bien t'aider aussi
D'accord. Poste un truc simple (gadget) et j'essayerais de l'ameliorer
Ok , je peux meme vous dessiner les icones.
Ok, lance les bases d'un cours

!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.12LTS- 64 bits
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: création d'un editeur de boitte de dialogue

Message par dayvid »

merci beaucoup les gars mais moi j'ai un truc que je voudrait faire
mais je ne sais pas pourquoi on veut pas m'aider sur sa ?

Nico stp peut tu m'aider :)

sinon vous voulez quoi vous deux au juste
éclérez ma lanterne

je serais plus for que vous en pure basic ?
j'en doute mais bon l'éspoire fait vivre LOL :mrgreen:
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

dayvid a écrit :merci beaucoup les gars mais moi j'ai un truc que je voudrait faire
mais je ne sais pas pourquoi on veut pas m'aider sur sa ?

Nico stp peut tu m'aider :)

sinon vous voulez quoi vous deux au juste
éclérez ma lanterne

je serais plus for que vous en pure basic ?
j'en doute mais bon l'éspoire fait vivre LOL :mrgreen:
Dayvid, poste un petit code sur les gadgets et je l'etudierais. Puis je t'aiderais...

!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.12LTS- 64 bits
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: création d'un editeur de boitte de dialogue

Message par falsam »

Tous ensemble.

Moi je donne la base de ton RAD générateur de boite de dialogue
C'est un bon début non ?

Code : Tout sélectionner

Enumeration
  #MainForm
EndEnumeration

Procedure MainFormShow()
  OpenWindow(#MainForm,0,0,800,600,"Générateur boite de dialogue")
EndProcedure


MainFormShow()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget

    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
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
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

falsam a écrit :Tous ensemble.

Moi je donne la base de ton RAD générateur de boite de dialogue
C'est un bon début non ?

Code : Tout sélectionner

Enumeration
  #MainForm
EndEnumeration

Procedure MainFormShow()
  OpenWindow(#MainForm,0,0,800,600,"Générateur boite de dialogue")
EndProcedure


MainFormShow()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget

    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
Ok. Et qu'est ce que dayvid voudrait greffer a cette fenetre ? (car je ne sais pas ce qu'il veux)

!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.12LTS- 64 bits
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: création d'un editeur de boitte de dialogue

Message par falsam »

dayvid a écrit : ...
ce que j'ai besoin:

une selection avec la souris sur la fenêtre
crée le gadget voulut
pouvoir déplacer le gadget crée
pouvoir modifier le gadget crée (taille, texte, image, etc)

je ne cherche pas a refaire un editeur visuelle car mon niveaux est
trop bas pour le momment et sa ne m'interesse pas en plus
j'ai juste besoin de ton aide si tu l'accepte pour divers petite chose
pour le reste je ferais je que je peut tous seulle
merci d'avence !!! :D
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
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

Une question de newbies : qu'est ce qu'un gadget ? :|

!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.12LTS- 64 bits
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: création d'un editeur de boitte de dialogue

Message par Backup »

SPH a écrit :Une question de newbies : qu'est ce qu'un gadget ? :|
bon ça va ... :roll:
te fais pas plus con que tu l'es... :mrgreen:
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: création d'un editeur de boitte de dialogue

Message par SPH »

Dobro a écrit :
SPH a écrit :Une question de newbies : qu'est ce qu'un gadget ? :|
bon ça va ... :roll:
te fais pas plus con que tu l'es... :mrgreen:
Je t'assure que je ne sais pas ce que c'est. :idea:
(je me met au niveau de dayvid) :mrgreen:

Est ce que la croix de fermeture est un gadget ? Une liste deboulante ? Un champ ?

!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.12LTS- 64 bits
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: création d'un editeur de boite de dialogue

Message par dayvid »

Non un bouton :mrgreen:

Bon bin je pence que nico n'as pas le temps de m'aider
ou qu'il ne veut pas et c'est son droit :wink:

par conte lui il connais bien ce genre de chose
bon bin donc je sais pas comment faire la
en plus j'ai déjà poster un code !

j'avoue que je change un peut d'avis comme de chemise
mais j'aimerais pourtant réaliser ce que je souhaite :wink:

mais franchement si nico ou n'importe qui d'autre pouvez
éclairer ma lanterne ce serais cool

dobro doit savoir mais j'ose même pas lui demander :|
bin oui car je sens qu'il ne m'aime pas vraiment
enfin bon bref

que doi-je faire pour réaliser ce petit programme comme j'ai dit ?
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: création d'un editeur de boite de dialogue

Message par Chris »

Avec jbernard13 et dayvid comme programmeurs, si on a besoin de rien, on sera au moins sur d'être servi plus vite! :mrgreen:
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: création d'un editeur de boite de dialogue

Message par dayvid »

Aller quoi un chti coup de pouce :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: création d'un editeur de boite de dialogue

Message par falsam »

J'imagine que tu as un fichier contenant les gadgets à positionner sur ta fenetre.

Exemple de fichier mafenetre.txt
la structure de chaque enregistrement est sous la forme :
Model,Name,Left,Top,Width,Height,Caption

Code : Tout sélectionner

Window,#MainForm,0,0,800,600,Ma fenêtre
Button,#BtnOk,400,20,80,20,Ok
Text,#Pb_Any,20,20,60,20,Nom
String,#Name,100,20,100,20,Null
A toi de faire un programme qui ouvre ce fichier et dans lequel tu intégres une boucle qui ouvre ce fichier, le lit séquentiellement, teste le model de gadget et enfin positionne le gadget dans la fenêtre.
dayvid a écrit :Moi j'ai un truc a demander

j'ai une fenêtre et je crée un bouton (dynamiquement)
avec #PB_Any

donc le programme va automatiquement donner une valeur a ce bouton
méton 30498

bin voilà le problème !

comment je fait pour intéragire avec ce gadget maintenant ?!??!!?!!!
Tu récuperes l'identifiant du gadget au moment de la création du gadget.
Exemple : Idgadget=ButtonGadget(#Pb_Any,400,20,80,20,"Envoyer")

Pour pouvoir interagir avec l'ensemble de tes gadgets, je pense que une des solutions est de passer par une structure de gadgets dans laquelle tu stockes chacun de tes identifiants et le nom de tes gadgets.

Code : Tout sélectionner

;Structure minimum d'un gadget
Structure StructureGadget
  Idgadget.i
  Name.s
EndStructure

Dim Gadgets.StructureGadget(100)
Bon je vais tenter de te faire un bout de code minimaliste pour répondre à ton "problème" en espérant que j'ai compris le sens de ta demande :p
Dernière modification par falsam le sam. 19/févr./2011 17:18, modifié 1 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%
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Re: création d'un editeur de boite de dialogue

Message par jbernard13 »

Chris a écrit :Avec jbernard13 et dayvid comme programmeurs, si on a besoin de rien, on sera au moins sur d'être servi plus vite! :mrgreen:
merci pour ton code
Jbernard13
Avatar de l’utilisateur
falsam
Messages : 7317
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: création d'un editeur de boite de dialogue

Message par falsam »

Crées un fichier texte qui contiendra la structure de ta boite de dialogue.
la première ligne de ton fichier doit être la structure de ta fenêtre.

Code : Tout sélectionner

Window,#MainForm,0,0,500,300,Ma fenêtre
Button,#BtnOk,400,20,80,20,Ok
Text,#PB_Any,20,20,60,20,Nom
String,#Name,100,20,100,20,
Nomme ce fichier par exemple mafenetre.txt

Voila maintenant le code minimaliste de ton programme qui va lire ce fichier et générer ta boite de dialogue. A toi d'imaginer le reste.

Code : Tout sélectionner

EnableExplicit

Enumeration
  #IdFichier
EndEnumeration

;Structure d'un gadget
Structure StructureGadget
  Id.i ;Identifiant du gadget
  Name.s ; Nom de la fenetre ou du gadget à generer
EndStructure

Global Dim Gadget.StructureGadget(100) ;Fenetre et gadgets 
Global Countgadget.i ;Compteur de gadgets
Global IdGadget.i ;Identifiant du gadget en cours de creation

Global FileName.s ; Fichier à lire
Global Record.s ;Ligne qui est lu dans le fichier en entrée
Global Dim Field.s(7) ;Les champs constituants l'enregistrement lu

Global i.i ;Indice de parcours 

;Création de la fenetre
Procedure MainFormCreate(Model.s, Gadget.s, x, y, Width, Height, Caption.s)
  Select Model
    Case "Window" : IdGadget=OpenWindow(#PB_Any, x, y, Width, Height, Caption)
    Case "Button" : IdGadget=ButtonGadget(#PB_Any, x, y, Width, Height, Caption)
    Case "Text" : IdGadget=TextGadget(#PB_Any, x, y, Width, Height, Caption)
    Case "String" : IdGadget=StringGadget(#PB_Any, x, y, Width, Height, Caption)
  EndSelect
  
  ;Mise à jour de la structure des gadgets
  Gadget(Countgadget)\Id=IdGadget 
  Gadget(Countgadget)\Name=Gadget
  
  CountGadget=CountGadget+1
EndProcedure

Procedure LoadFile()
  FileName.s=OpenFileRequester("Ouvrir un fichier...", "*.Txt", "Texte (*.txt)|*.txt",0)
  If FileName  
  If ReadFile(#IdFichier,FileName)    ; Si le fichier peut être lu , on continue...
    While Eof(#IdFichier) = 0           ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File') 
      Record=ReadString(#IdFichier)  ; Lit une ligne du fichier
 
      For i=1 To 7
        Field(i-1)=StringField(Record, i, ",")
      Next
      MainFormCreate(Field(0), Field(1), Val(Field(2)), Val(Field(3)), Val(Field(4)), Val(Field(5)), Field(6))
    Wend
    
    CloseFile(#IdFichier)                  ; Ferme le fichier précédemment ouvert
  Else
    MessageRequester("Information","Impossible d'ouvrir le fichier!")
  EndIf

  EndIf
EndProcedure

LoadFile()

Repeat
  Select WaitWindowEvent()
    ;C'est ici que tu connais le nom de ton gadget :)
    Case #PB_Event_Gadget
      For i=0 To (CountGadget-1)
        If Gadget(i)\Id=EventGadget()
          Debug Gadget(i)\Name
        EndIf
      Next
        
    Case #PB_Event_CloseWindow
      End
  EndSelect
ForEver
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%
Répondre