Créer des composants (gadgets).
-
- Messages : 13
- Inscription : lun. 14/févr./2005 8:54
Créer des composants (gadgets).
Bonjour,
Débutant en PureBasic, je me demande comment je dois faire pour créer un nouveau composant.
Je souhaiterais par exemple créer un composant "grille" que je pourrais utiliser à la façon d' "Excel".
J'ai entendu parler des API Windows. Où les trouver et comment les utiliser dans PureBasic?
Merci d'avance pour vos réponses.
Débutant en PureBasic, je me demande comment je dois faire pour créer un nouveau composant.
Je souhaiterais par exemple créer un composant "grille" que je pourrais utiliser à la façon d' "Excel".
J'ai entendu parler des API Windows. Où les trouver et comment les utiliser dans PureBasic?
Merci d'avance pour vos réponses.
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Le mieux serait de débuter par les tutos pour débutant, tu y apprendras comment marche les gadget de PB
voir ici
http://www.purebasic.fr/french/viewtopic.php?t=185
ou si vraiment débutant en programmation, je te conseille de regarder celui la avant :
http://www.purebasic.fr/french/viewtopic.php?t=182
Pour faire une grille style excel, il n'ya pas besoin des API
C'est assez facile mais je ne suis pas sur que si je te donne l'exemple, tu le comprennes.
Quel est ton niveau en programmation ?
voir ici
http://www.purebasic.fr/french/viewtopic.php?t=185
ou si vraiment débutant en programmation, je te conseille de regarder celui la avant :
http://www.purebasic.fr/french/viewtopic.php?t=182
Pour faire une grille style excel, il n'ya pas besoin des API

C'est assez facile mais je ne suis pas sur que si je te donne l'exemple, tu le comprennes.
Quel est ton niveau en programmation ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 13
- Inscription : lun. 14/févr./2005 8:54
J'ai fait de la programmation (Basic, Cobol, Fortran, Pascal - J'ai tout oublié!) il y a bien longtemps, sous les premiers ordis sous Dos.Le Soldat Inconnu a écrit :Le mieux serait de débuter par les tutos pour débutant, tu y apprendras comment marche les gadget de PB
voir ici
http://purebasic.hmt-forum.com/viewtopic.php?t=185
ou si vraiment débutant en programmation, je te conseille de regarder celui la avant :
http://purebasic.hmt-forum.com/viewtopic.php?t=182
Pour faire une grille style excel, il n'ya pas besoin des API
C'est assez facile mais je ne suis pas sur que si je te donne l'exemple, tu le comprennes.
Quel est ton niveau en programmation ?
Windows n'existait pas encore!
Depuis " l'explosion" informatique, je n'arrive plus à suivre...
Je voudrais bien m'y remettre!
Merci pour ta réponse.
-
- Messages : 13
- Inscription : lun. 14/févr./2005 8:54
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
Je te laisse regarder les tutos, n'hésites pas à poser des questions 
Ensuite, je pense que c'est ça que tu voulais faire :

Ensuite, je pense que c'est ça que tu voulais faire :
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.92
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 400, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test") = 0 Or CreateGadgetList(WindowID()) = 0
End
EndIf
; on va faire un tableau de StringGadget, dimension 10 * 10
Dim Gadget(9, 9) ; on crée un tableau de 10 par 10 qui va recevoir l'identifant des gadgets crées
For x = 0 To 9
For y = 0 To 9
Gadget(x, y) = StringGadget(#PB_Any, 40 * x, 20 * y, 40, 20, Str(x) + ", " + Str(y))
; On sauvegarde l'identifiant du gadget dans le tableau pour pouvroi récupérer le texte tapé
Next
Next
Repeat
Event = WaitWindowEvent()
Until Event = #PB_EventCloseWindow ; On a fermé la fenêtre
; on affiche le contenu du tableau dans le debugger
For x = 0 To 9
For y = 0 To 9
Debug Str(x) + ", " + Str(y) + " = " + GetGadgetText(Gadget(x, y))
Next
Next
End
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 13
- Inscription : lun. 14/févr./2005 8:54
Cher ami breton,Le Soldat Inconnu a écrit :Je te laisse regarder les tutos, n'hésites pas à poser des questions
Ensuite, je pense que c'est ça que tu voulais faire :Code : Tout sélectionner
; Auteur : Le Soldat Inconnu ; Version de PB : 3.92 ; Création de la fenêtre et de la GadgetList If OpenWindow(0, 0, 0, 400, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test") = 0 Or CreateGadgetList(WindowID()) = 0 End EndIf ; on va faire un tableau de StringGadget, dimension 10 * 10 Dim Gadget(9, 9) ; on crée un tableau de 10 par 10 qui va recevoir l'identifant des gadgets crées For x = 0 To 9 For y = 0 To 9 Gadget(x, y) = StringGadget(#PB_Any, 40 * x, 20 * y, 40, 20, Str(x) + ", " + Str(y)) ; On sauvegarde l'identifiant du gadget dans le tableau pour pouvroi récupérer le texte tapé Next Next Repeat Event = WaitWindowEvent() Until Event = #PB_EventCloseWindow ; On a fermé la fenêtre ; on affiche le contenu du tableau dans le debugger For x = 0 To 9 For y = 0 To 9 Debug Str(x) + ", " + Str(y) + " = " + GetGadgetText(Gadget(x, y)) Next Next End
Un grand merci pour ton exemple.
Je vais, comme tu le suggères à juste titre, examiner avec attention les tutos et le "manuel".
A toute première vue, si j'ai bien compris sans connaître les instructions, il semblerait que ta grille soit un gadget composé lui-même de 100 gadgets de chaînes de caractères.
-
- Messages : 13
- Inscription : lun. 14/févr./2005 8:54
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
-
- Messages : 13
- Inscription : lun. 14/févr./2005 8:54
Merci pour la réponse!Le Soldat Inconnu a écrit :http://www.purearea.net/pb/CodeArchiv/French.html
-
- Messages : 17
- Inscription : lun. 07/mars/2005 17:50
Créer des gadgets.
Bonjour,
Par ma première question, je souhaitais savoir s'il est possible de créer des nouveaux gadgets avec PureBasic.
J'affine ma question en demandant s'il est possible de créer des nouveaux gadgets avec PureBasic, sans se servir de ceux qui existent déjà?
Si oui, où puis-je trouver un tuto à ce propos (le domaine est tellement vaste
!) ?
Merci d'avance!
Par ma première question, je souhaitais savoir s'il est possible de créer des nouveaux gadgets avec PureBasic.
J'affine ma question en demandant s'il est possible de créer des nouveaux gadgets avec PureBasic, sans se servir de ceux qui existent déjà?
Si oui, où puis-je trouver un tuto à ce propos (le domaine est tellement vaste

Merci d'avance!
-
- Messages : 4312
- Inscription : mer. 28/janv./2004 20:58
- Localisation : Clermont ferrand OU Olsztyn
- Contact :
on a les possibilités suivantes :
- partir d'un assemble de gadget existant (mais c'est pas ce que tu cherches visiblement, c'est pourtant le plus simple)
- partir d'un gadget existant et modifier son design en passant par un gadget ownerdraw, en clair, tu as le gadget mais c'est toi qui le dessine comme ça te chante (voir CodeArchiv, il y a des exemples)
on arrive à de chouette truc comme ça
et en faisant de l'assemblage de gadget de ce type, on peut faire n'importe quoi
- programmer entièrement le gadget de A à Z, en détectant le survol de la souris, les clic souris, etc ...
typiquement, tu peux regardé mon PopupMenuXP
le menu est fait à partir d'image que j'anime ensuite.
http://www.purebasic.fr/french/viewtopic.php?t=59
surement le plus souple pour permettre de gros délire mais assez long à coder
- faire le gadget uniquement avec l'API mais cela revient pratiquement à faire un assemblage de gadget pure déjà existant.
il faut savoir que les possibilité intérger à win sont pas infinis
et que toutes les options dispo ici sont intégrable aux gadget de Pure via sendmessage(
Quel type de gadget souhaites-tu faire ?
- partir d'un assemble de gadget existant (mais c'est pas ce que tu cherches visiblement, c'est pourtant le plus simple)
- partir d'un gadget existant et modifier son design en passant par un gadget ownerdraw, en clair, tu as le gadget mais c'est toi qui le dessine comme ça te chante (voir CodeArchiv, il y a des exemples)
on arrive à de chouette truc comme ça
et en faisant de l'assemblage de gadget de ce type, on peut faire n'importe quoi
- programmer entièrement le gadget de A à Z, en détectant le survol de la souris, les clic souris, etc ...
typiquement, tu peux regardé mon PopupMenuXP
le menu est fait à partir d'image que j'anime ensuite.
http://www.purebasic.fr/french/viewtopic.php?t=59
surement le plus souple pour permettre de gros délire mais assez long à coder
- faire le gadget uniquement avec l'API mais cela revient pratiquement à faire un assemblage de gadget pure déjà existant.
il faut savoir que les possibilité intérger à win sont pas infinis
et que toutes les options dispo ici sont intégrable aux gadget de Pure via sendmessage(
Quel type de gadget souhaites-tu faire ?
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
-
- Messages : 17
- Inscription : lun. 07/mars/2005 17:50
Pour l'instant, je n'ai pas encore d'idée bien précises.Le Soldat Inconnu a écrit :Quel type de gadget souhaites-tu faire ?
Lorsque j'aurai un besoin bien précis, que je n'arriverai pas à résoudre, je me permettrai de le soumettre sur le forum.
Ma question avait surtout pour but de me rassurer quant aux possibilités de PureBasic.
Merci pour ta réponse, elle a répondu à ma question.
@+
j'ai a peine modifie le code du soldat inconnu pour mettre la grille
dans un ScrollAreaGadget ce qui est assez pratique...
sinon j'ai lu qqpart ( forum FR ou anglais je sais plus ) que Fred avait
l'intention d'intégrer assez vite un GridGadget() à Purebasic
dans un ScrollAreaGadget ce qui est assez pratique...

Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 3.92
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 418, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Test") = 0 Or CreateGadgetList(WindowID()) = 0
End
EndIf
; on va faire un tableau de StringGadget, dimension 10 * 10
ScrollAreaGadget(0,0,0,418,200,400,480,2,#PB_ScrollArea_BorderLess)
Dim Gadget(9, 23) ; on crée un tableau de 10 par 23 qui va recevoir l'identifant des gadgets crées
For x = 0 To 9
For y = 0 To 23
Gadget(x, y) = StringGadget(#PB_Any, 40 * x, 20 * y, 40, 20, Str(x) + ", " + Str(y))
; On sauvegarde l'identifiant du gadget dans le tableau pour pouvroi récupérer le texte tapé
Next
Next
CloseGadgetList()
Repeat
Event = WaitWindowEvent()
Until Event = #PB_EventCloseWindow ; On a fermé la fenêtre
; on affiche le contenu du tableau dans le debugger
For x = 0 To 9
For y = 0 To 9
Debug Str(x) + ", " + Str(y) + " = " + GetGadgetText(Gadget(x, y))
Next
Next
End
l'intention d'intégrer assez vite un GridGadget() à Purebasic
