Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Groupes de travail » ChrisLib » Nouvelle librairie

christophedlr
ProgBoarder
Citer Windows XP Firefox 3 - Posté le 21/07/2009 à 01:14
Bonsoir,

Je ne sais pas si je peux en parler ici ou si c'est interdit par la charte, donc je suis désolé si je ne là respecte pas.

Voila, certains le savent car je l'ai dit au cours de mes différents topic sur ce forum, je suis entrain de créer une librairie QB.

Son nom : ChrisLib (faute d'une meilleur idée lol), elle est actuellement en version 0.1

Pour ceux qui souhaite des informations régulière, donc à jour, voyez dans la liste des projets.

Je souhaite toutefois ici (si ce topic est bien valide, désolé sinon), rappelé que qu'est cette librairie.


Cette librairie fournis une aide à la programmation, basé sur plusieurs modules (tous dans une lib, mais plusieurs fichiers .BI à inclure, un par module).

Je passe sous silence le module Text qui ne fournis rien de spécial et qui est déjà expliqué dans les projets, pour en venir à mes deux autres modules :
- Mouse
- GUI

Le module Mouse :
Autour de quelques fonctions, il permet de gérer la souris (l'afficher, l'enlever), gérer l'état des boutons ainsi que la gestion de la position de la souris.
Comme le module utilise l'assembleur car QB ne permet pas directement son utilisation, ce module se trouve être pratique car il fait tous, pas besoin de chercher les registres à changer ni comment utiliser CALL ABSOLUTE (pas compris comment s'en servir) et CALL INTERRUPT (c'est lui que j'utilises).


Le module GUI :
Ce module est séparé en plusieurs sous-module, actuellement je n'ai codé (terminé y a quelques minutes seulement) que la Progress Bar.

Je vais donc parler de cette partie : ProgBar est un module du module GUI, permettant d'afficher et modifier une barre de progression.

Deux fonctions sont à disposition :
- ProgBarDisplay qui affiche la barre de progression à l'endroit demander et avec une valeur min et max.
- ProgBarUpdate qui met à jour la barre.


La première fonction fait rien de spécial, elle utilise LOCATE pour le positionnement et PRINT avec STRING$ pour afficher le caractère 176 10 fois.

La seconde fonction elle, utilise la valeur qu'on lui fournis.
Elle va calculer un pourcentage (donc entre 0 et 100%), qui permettra de savoir la progression à afficher.

Quand le calcule est terminé, LOCATE positionne, PRINT STRING$ affiche le caractère 219 (montrant la progression) autant de fois qu'il faut pour représenter la progression.



J'ai bien sur tester tous cela, et c'est assez fonctionnel.
Toutefois, je n'ai pas fait de réel programme qui permettrait de montrer son utilisation, ce n'étaient que quelques tests internes afin de voir si ca fonctionnait.

Vous avez là en gros, ce que ma lib sait faire actuellement.
Le module GUI permet de simuler des interface graphique mais en mode texte (la lib travaille toujours en mode texte pour le moment en tous cas).

Je prévois de rajouter les boutons, les fenêtres, les menus etc. tous ce qui simule vraiment une interface graphique, mais cela est fait en mode texte.
Toutefois, cela rend plus jolie et c'est bien mieux à mon goût.


Bien, revenons donc sur le début.
J'ai eu l'idée de créer cette lib, dans un premier temps pour me lancer un défi, qui était au départ de savoir utiliser CALL INTERRUPT et donc faire appel à de l'assembleur, chose réussit avec la souris.

En seconde chose, j'ai bien aimé certaines librairies, mais trop axé sur l'assembleur.
L'assembleur c'est cool, c'est bien ça repousse les limites du QB.

Mais l'ennui avec l'assembleur c'est de tenir au bon fonctionnement la librairie.
De plus utiliser de l'assembleur quand QB nous fournis déjà des fonctions est totalement stupide.

Je n'ai bien entendu pas la prétention de faire une librairie surclassant les plus connues, personnellement elle me sera utile pour mes programmes QB, après si des gens veulent s'en servir, elle dira pas non (clein d'oeil)


Par rapport à tous cela et du fait que QB est assez limité, j'ai prévus que la librairie soit utilisable avec FreeBasic, donc compilable aussi bien sous MS-DOS avec QB ou FreeBasic (donc du 16 bits), que sous Windows (32/64 bits), que les environnement Unix (32/64 bits).

Ainsi, plutôt qu'être cantonné à une communauté restreinte d'utilisateurs de QB, elle s'ouvre à ceux qui font des programmes consoles avec FreeBasic.
De plus, programmant beaucoup sous Linux, elle peut me permettre d'avoir des programmes consoles plus pro que du simple texte gribouillis.


Je tiens à remercier particulièrement ceux de ce forum qui m'ont aider quand j'avais besoin d'aide, ils m'ont permis de retrouver ce que j'aime dans ce langage assez vieux avec une API très minimale.
En effet, je développe directement avec QB, ce qui permet de s'assurer que la lib fonctionne avec tous ce qui est fait en QB, FreeBasic bien que disposant d'une compatibilité avec le QB, permet d'utiliser un peu ce que Visual Basic permet, donc même utiliser l'API Windows si ont le veut, ce qui est pas le cas du QB.

Pour le QB, nous devons donc souvent avoir recours à différentes méthodes comme l'assembleur etc. cela fait donc toujours partie du défi que je me suis lancé.


Merci à vous d'avoir lu ce topic assez long, et j'espère que vous aurez des critiques, bonnes comme mauvaises, cela permet d'apprendre (clein d'oeil)
Freem
Modérateur
RemonterCiter Windows XP Firefox 3 - Posté le 21/07/2009 à 03:23
Hé bien au sujet de l'emplacement, je dirais qu'il n'est pas le plus approprié.
Porgboards à un système de groupes et de projets, dont tu pourrais te servir pour avoir un forum qui soit dédié à ta librairie, ou si des gens veulent s'impliquer avec toi dans ton projet, vous pourrez discuter en privé.
Ces forums peuvent aussi être publics il me semble, au bon vouloir du chef de projet.

Un autre emplacement aurait été celui des bibliothèques, synonyme de librairie en prog.

Selon ton choix, l'équipe de modération pourra déplacer ce sujet.
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
christophedlr
ProgBoarder
RemonterCiter Windows XP Firefox 3 - Posté le 21/07/2009 à 10:00
Je n'ai pas vu de forum dédié quand j'ai créer le groupe, désolé si je n'ai pas fait attention (j'étais un peu endormi ont va dire lol).

Si y a un forum dédié aux groupes, ce serait bien que ce soit déplacé là-bas, et encore désolé pour ne pas avoir mis au bon endroit.
Freem
Modérateur
RemonterCiter Windows XP Firefox 3 - Posté le 21/07/2009 à 12:11
Ce n'est pas un forum.
Regarde dans le panneau de gauche (clein d'oeil) .
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
christophedlr
ProgBoarder
RemonterCiter Windows XP Firefox 3 - Posté le 21/07/2009 à 17:24
Dans le panneau de gauche y a la possibilité de créer un projet suivant un groupe, ce qui est fait.
Après d'après la page, il est possible d'avoir un forum dédié au projet, mais bien qu'il dit l'avoir créer, c'est pas le cas.
RemonterCiter MacOS Firefox 3 - Posté le 21/07/2009 à 20:15
J'ai effectivement repéré un bug dans la création de forum dédié au projet.

Peut-tu réessayer?
Change la caféine en lignes de code, et aurait parfois besoin de l'inverse.
christophedlr
ProgBoarder
RemonterCiter Windows XP Firefox 3 - Posté le 21/07/2009 à 21:52
Ca fonctionne, merci beaucoup Neliger.
Vous pouvez supprimer ce topic, vais en refaire un sur le forum dédié au projet, avec en plus les nouvelles informations (clein d'oeil)
neamar
Modérateur
RemonterCiter Linux Firefox 3 - Posté le 21/07/2009 à 21:59
On ne va pas le supprimer. Juste le fermer.

Le projet : http://www.progboards.com/projet-13_chrislib.php
Nouveau forum : http://www.progboards.com/forum-45_groupes_de_travail_chrislib.php
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.

http://neamar.fr
Francesco
Modérateur
RemonterCiter Linux Firefox 3 - Posté le 21/07/2009 à 22:06
Pourquoi fermer ? Il suffisait juste de le déplacer ^^
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2012 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,039 s - Crédits - Stats
1 connecté