=> Les confidences de SPH
=> Les confidences de SPH
J'ai commencé la programmation il y a longtemps et j'ai toujours codé de facon non conventionnelle. Je veux dire par la que je preferais me retaper entierement une partie du code alors qu'une instruction toute faite existait. Ainsi, mon code ressemble plutot a un gros paquet d'instructions qui n'a pas d'encadrement telle qu'une fenetre, des onglets, des gadgets, etc....
Je sais coder le fond mais pas la forme. Dans mes codes, il n'y a pas de gadgets (je ne sais pas ce que c'est !!), de procedures, etc....
Est-ce grave ?
A mes yeux non. J'arrive toujours a me debrouiller pour arriver a mes fins mais mon travail est souvent inpresentable. Au moins, il interfere avec un utilisateur via une console qui contient des print et des input !!
Quand je vois certains se lancer dans des projets de libs et de DLL, je les admire mais j'y pige rien. J'aimerais les aider mais mon code est toujours "brut" sans avoir de formes...
Je m'ennuie de ne pas etre utile...
Qu'en dites vous ?
Je sais coder le fond mais pas la forme. Dans mes codes, il n'y a pas de gadgets (je ne sais pas ce que c'est !!), de procedures, etc....
Est-ce grave ?
A mes yeux non. J'arrive toujours a me debrouiller pour arriver a mes fins mais mon travail est souvent inpresentable. Au moins, il interfere avec un utilisateur via une console qui contient des print et des input !!
Quand je vois certains se lancer dans des projets de libs et de DLL, je les admire mais j'y pige rien. J'aimerais les aider mais mon code est toujours "brut" sans avoir de formes...
Je m'ennuie de ne pas etre utile...
Qu'en dites vous ?
lit la doc, examine les exemples, et aprends ce qu'est un Gadget
(un element actif o inactif d'une interface utilisateur, Bouton,Text,zone d'entré de texte, radio bouton,ect ....)
franchement c'est pas dur, tu t'embete plus a utiliser la console qu'a utiliser les Gadgets
une Dll ce sont ni plus ,ni moins, qu'une serie de Procedures (voir Doc au mot Procedure ) qui sont mis dans un format special (compilation DLL)
et appelable d'un autre programme
rien de bien compliqué la dedans
...
une lib, c'est comme une DLL , sauf que sont format permet de l'apeller
directement du PureBasic
si tu cree une procedure (dans le temps on appelai ça des Functions en GFA basic ) "meteo", donc le but est de se connecter a Meteo.FR
tu le met au format Librairie a l'aide de l'utilitaire "Taillbite"
ensuite tu pourra utiliser cette nouvelle instruction dans le purebasic
et dans ton listing futur ta nouvelle instruction "meteo"
affichera une fenetre navigateur avec le site de Meteo.fr dedans
c'est un exemple de ce qu'on peut faire grace au librairies
tu peux inventer de nouvelles commande personel , cela permet de creer
des instructions, que le pure basic, n'a pas en Natif
tu compille ton Prg
(un element actif o inactif d'une interface utilisateur, Bouton,Text,zone d'entré de texte, radio bouton,ect ....)
franchement c'est pas dur, tu t'embete plus a utiliser la console qu'a utiliser les Gadgets
une Dll ce sont ni plus ,ni moins, qu'une serie de Procedures (voir Doc au mot Procedure ) qui sont mis dans un format special (compilation DLL)
et appelable d'un autre programme
rien de bien compliqué la dedans
une lib, c'est comme une DLL , sauf que sont format permet de l'apeller
directement du PureBasic
si tu cree une procedure (dans le temps on appelai ça des Functions en GFA basic ) "meteo", donc le but est de se connecter a Meteo.FR
tu le met au format Librairie a l'aide de l'utilitaire "Taillbite"
ensuite tu pourra utiliser cette nouvelle instruction dans le purebasic
et dans ton listing futur ta nouvelle instruction "meteo"
affichera une fenetre navigateur avec le site de Meteo.fr dedans
c'est un exemple de ce qu'on peut faire grace au librairies
tu peux inventer de nouvelles commande personel , cela permet de creer
des instructions, que le pure basic, n'a pas en Natif
tu compille ton Prg
Ce qui me ferait le plus de bien, ce serait de savoir manier l'editeur visuel. Il nous pond un squelette qu'il est a mes yeux difficile de remplir...
Tiens, un exemple :
Faire une fenetre contenant 4 onglets en haut de celle ci.
Le premier onglet nous demanderait d'inscrire dans un champ vide un nombre que nous appelleront X
Le deuxieme onglet ferait apparaitre une liste deroulante contenant : +; -; * et /
Le troisieme onglet nous demanderait aussi de remplir un champ d'un nombre que l'on nomera Y
Le quatrieme onglet contiendrait un bouton a cliqué nommé "resultat" et qui afficherait le resultat de l'operation X et Y.
********
Certains sont capables de realiser ce simple enoncé... mais pas tout le monde...
L'inconveniant, c'est que nul part on nous enseigne a le faire (pas de tutos
)
Tiens, un exemple :
Faire une fenetre contenant 4 onglets en haut de celle ci.
Le premier onglet nous demanderait d'inscrire dans un champ vide un nombre que nous appelleront X
Le deuxieme onglet ferait apparaitre une liste deroulante contenant : +; -; * et /
Le troisieme onglet nous demanderait aussi de remplir un champ d'un nombre que l'on nomera Y
Le quatrieme onglet contiendrait un bouton a cliqué nommé "resultat" et qui afficherait le resultat de l'operation X et Y.
********
Certains sont capables de realiser ce simple enoncé... mais pas tout le monde...
L'inconveniant, c'est que nul part on nous enseigne a le faire (pas de tutos
En faite, je vois pas trop où tu bloque avec l'éditeur
. Mais sa reste néanmoins plus simple que le faire à la main.
Manque de compréhansion du code généré ?
Code généré non adapté ?
euh ... autre chose ?
Personnelement je faisait peu d'interface avant mais une fois que l'on s'y met un peu, on comprend assez vite
.
Certe ce serai nikel un VD comme VisualStudio
. J'essai de faire un IDE pour PureBasic en C# (je sais c'est honteux
mais bon j'aime bien aussi le C#) mais je bloque sur l'IntelliSense et la colorisation
.
Mais bon c'est du HS total ^^. Le mieux est d'étudier des interfaces simples et leurs codes, enfin si tu bloqe sur sa
Manque de compréhansion du code généré ?
Code généré non adapté ?
euh ... autre chose ?
Personnelement je faisait peu d'interface avant mais une fois que l'on s'y met un peu, on comprend assez vite
Certe ce serai nikel un VD comme VisualStudio
Mais bon c'est du HS total ^^. Le mieux est d'étudier des interfaces simples et leurs codes, enfin si tu bloqe sur sa
SPH, je trouve ça bien que tu sois capable de programmer de la sorte, et que tu ne te contentes pas non plus de ce qui existe.
Qu'est-ce qu'une convention, sûrement encore un truc pour faire perdre des batailles avant la guerre.
Maintenant, il faut apprendre à classer tes lignes de programmes en blocs de procédures réutilisables, avec des noms significatifs de ton choix et des paramètres.
Pour les gadgets, c'est de la gestion d'événements.
L'éditeur visuel c'est bien pour positionner les gadgets, les préremplir pour l'initialisation et attribuer une constante à chacuns, il ne faut pas trop compter dessus pour plus, c'est déjà bien.
Pour plus d'exemples lance aussi une recherche dans ton répertoire codearchiv sur les noms des gadgets, ...
@ peluche
Qu'est-ce qu'une convention, sûrement encore un truc pour faire perdre des batailles avant la guerre.
Maintenant, il faut apprendre à classer tes lignes de programmes en blocs de procédures réutilisables, avec des noms significatifs de ton choix et des paramètres.
Pour les gadgets, c'est de la gestion d'événements.
L'éditeur visuel c'est bien pour positionner les gadgets, les préremplir pour l'initialisation et attribuer une constante à chacuns, il ne faut pas trop compter dessus pour plus, c'est déjà bien.
Pour plus d'exemples lance aussi une recherche dans ton répertoire codearchiv sur les noms des gadgets, ...
@ peluche
-
Frenchy Pilou
- Messages : 2194
- Inscription : jeu. 27/janv./2005 19:07
Tu as tout du programmeur unix
Faire un programme en console, c'est loin d'être un tort. La plupart des bons programmes fonctionnent de cette façon : ils traitent des données d'un flux entrant vers un flux sortant. L'un des avantages de cette méthode est que l'on distingue bien le "moteur" du programme, de l'interface homme machine. C'est aussi très modulaire!
Quant à tes "manques" quant aux procédures, etc., c'est une question de temps! Ta cervelle doit s'habituer!!! J'ai commencé à programmer à neuf ans. Je peux déjà te dire qu'il m'a fallu du temps avant de comprendre (seul) ce que c'était qu'un tableau, et le reste. Chaque jour j'apprends, et même si je sais que je ne saurai jamais tout, que je ne serai jamais le meilleur, j'essaye d'exploiter mon potentiel et de m'intéresser à tout, ça peut servir!!! Je ne sais plus où j'ai lu que le savoir n'avait pas de poids, que c'était un trésor qu'on pouvait emmener partout.
Quant à tes "manques" quant aux procédures, etc., c'est une question de temps! Ta cervelle doit s'habituer!!! J'ai commencé à programmer à neuf ans. Je peux déjà te dire qu'il m'a fallu du temps avant de comprendre (seul) ce que c'était qu'un tableau, et le reste. Chaque jour j'apprends, et même si je sais que je ne saurai jamais tout, que je ne serai jamais le meilleur, j'essaye d'exploiter mon potentiel et de m'intéresser à tout, ça peut servir!!! Je ne sais plus où j'ai lu que le savoir n'avait pas de poids, que c'était un trésor qu'on pouvait emmener partout.
Arg, je pense que si mes profs te lisaient, ils se pendraientposhu a écrit :l'algorythmie ca ne s'enseigne pas, ca s'apprend seul.
La fenetre que tu a décrite se code en une demi heure sans autre connaissance que la touche "F1" et un peu de jugeotte.
Je comprends ce que tu as voulu dire, mais même si c'est loin d'être une obligation, l'algorithmique s'enseigne !
Pour ma part, je conseillerai plutôt à SPH de lire et relire patiement l'aide, les exemples et les codes des autres membres du forum, sans se dire "bon, la, je comprend pas, j'y reviendrai plus tard".
Je pense que tout le monde apprend plus ou moins de cette façon.
L'algo, faut surtout le comprendre... Et faut aussi un minimum connaître le fonctionnement d'un ordi, ca aide beaucoup à comprendre ce qu'on fait.
A mon avis, commencer avec un langage bas-niveau est plus judicieux pour démarrer. Ca tombe bien, PB offre pas ma de fonctionnalités bas-niveau ^_^.
Pour ce qui est des langages qui tendent plus vers l'objet, l'algo en lui même change fondamentalement mais repose de toute facon sur des algo classiques...
Donc retour à la case départ, je pense que pour commencer à coder il faut comprendre ce que signifient au niveau de l'ordinateur les concepts de base (variables, boucles, opérations, instructions...)
Dri
A mon avis, commencer avec un langage bas-niveau est plus judicieux pour démarrer. Ca tombe bien, PB offre pas ma de fonctionnalités bas-niveau ^_^.
Pour ce qui est des langages qui tendent plus vers l'objet, l'algo en lui même change fondamentalement mais repose de toute facon sur des algo classiques...
Donc retour à la case départ, je pense que pour commencer à coder il faut comprendre ce que signifient au niveau de l'ordinateur les concepts de base (variables, boucles, opérations, instructions...)
Dri
-
Anonyme
L'editeur visuel de purebasic commence a m'enerver. Je ne sais pas si je vais rester calme...
Il t'en faut pas beaucoup
Ensuite pour le reste, c'est du "gadget"
D'ailleur je viens d'apprendre à utilisé les macros
Maintenant je vais essayer de comprendre dans quel cas je peut utilisé un quad, et son utilitée réelle.
Si, je desespere...Cpl.Bator a écrit :ne désespère pasL'editeur visuel de purebasic commence a m'enerver. Je ne sais pas si je vais rester calme...
Tiens, admire les debilités que je pond.
Ici, mesdames et messieurs, 2 panel gadgets ! De memoire, sans faire l'imbecile, je me dit que l'un passe devant l'autre quand je le clique !!
Resultat :
Code : Tout sélectionner
; PureBasic Visual Designer v3.95 build 1485 (PB4Code)
;- Window Constants
;
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Panel_0
#Panel_1
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
;- Panel0
PanelGadget(#Panel_0, 20, 20, 280, 220)
AddGadgetItem(#Panel_0, -1, "Tab 1")
;- Panel2
PanelGadget(#Panel_1, 98, -22, 240, 220)
AddGadgetItem(#Panel_1, -1, "Tab 1")
CloseGadgetList()
CloseGadgetList()
EndIf
EndIf
EndProcedure
-
Anonyme
Le but de ton code est donc d'afficher 2 panels gadgets
Le problème que tu avais est que tu superposais les 2 :
(je rapelle que les coordonées sont par rapport à la fenetre)
les coordonées du premier etait de 20, 20
les coordonées du second etait de 98, -22
Sachant que le premier à une taille de 280
Donc le deuxieme peut commencer a (280+20) / (Position Gadget_0 + Decalage de 20px) , pourquoi lui donnée une valeur négative en y ?
Regarde aussi ou j'ai mis les closegadgetlist().
Voilà, j'éspère t'avoir aider un peu à se sujet
Mais si tu veut te détendre, prend une masse et explose ton pc en hurlant un cri primaire
@++
Le problème que tu avais est que tu superposais les 2 :
(je rapelle que les coordonées sont par rapport à la fenetre)
les coordonées du premier etait de 20, 20
les coordonées du second etait de 98, -22
Sachant que le premier à une taille de 280
Donc le deuxieme peut commencer a (280+20) / (Position Gadget_0 + Decalage de 20px) , pourquoi lui donnée une valeur négative en y ?
Regarde aussi ou j'ai mis les closegadgetlist().
Code : Tout sélectionner
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Panel_0
#Panel_1
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
;- Panel0
PanelGadget(#Panel_0, 20, 20, 280, 220)
AddGadgetItem(#Panel_0, -1, "Tab 0")
CloseGadgetList()
;- Panel2
PanelGadget(#Panel_1, 320, 20, 280, 220)
AddGadgetItem(#Panel_1, -1, "Tab 1")
CloseGadgetList()
EndIf
EndIf
EndProcedure
Open_Window_0()
Repeat
event = WindowEvent() ; Recupère les evenement ds la fenetre
Until event = #PB_Event_CloseWindow ; si evenement = Fermeture fenetre, alors on sort de la boucle principale.Mais si tu veut te détendre, prend une masse et explose ton pc en hurlant un cri primaire
@++
Je crois que SPH voulait plusieurs onglets sur un panel d'où la superposition, mais c'est à nous de les rajouter.
@ peluche les nounours

Code : Tout sélectionner
Enumeration
#Window_0
EndEnumeration
;- Gadget Constants
;
Enumeration
#Panel_0
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 600, 300, "New window ( 0 )", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
;- Panel0
PanelGadget(#Panel_0, 20, 20, 280, 220)
AddGadgetItem(#Panel_0, -1, "Tab 0")
AddGadgetItem(#Panel_0, -1, "Tab 1") ; <- C'est à nous de rajouter les onglets
CloseGadgetList()
EndIf
EndIf
EndProcedure
Open_Window_0() ; Appel la procédure sinon pas exécuté
Repeat
event = WaitWindowEvent() ; Recupère les evenement ds la fenetre
Select event
Case #PB_Event_Gadget
Select EventGadget()
Case #Panel_0
Debug GetGadgetState(#Panel_0) ; Recupère l'onglet selectionné
EndSelect
EndSelect
Until event = #PB_Event_CloseWindow ; si evenement = Fermeture fenetre, alors on sort de la boucle principale.