Page 2 sur 7

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

Publié : jeu. 17/févr./2011 10:41
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

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

Publié : jeu. 17/févr./2011 14:06
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:

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

Publié : jeu. 17/févr./2011 15:32
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...

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

Publié : jeu. 17/févr./2011 15:34
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

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

Publié : jeu. 17/févr./2011 17:51
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)

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

Publié : jeu. 17/févr./2011 18:01
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

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

Publié : jeu. 17/févr./2011 18:57
par SPH
Une question de newbies : qu'est ce qu'un gadget ? :|

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

Publié : jeu. 17/févr./2011 21:20
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:

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

Publié : ven. 18/févr./2011 9:25
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 ?

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

Publié : sam. 19/févr./2011 14:58
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 ?

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

Publié : sam. 19/févr./2011 15:11
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:

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

Publié : sam. 19/févr./2011 15:18
par dayvid
Aller quoi un chti coup de pouce :)

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

Publié : sam. 19/févr./2011 15:44
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

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

Publié : sam. 19/févr./2011 16:56
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

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

Publié : sam. 19/févr./2011 17:11
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