begin process at 2012 05 28 07:14:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

[allegro] c++: saisi de données


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[allegro] c++: saisi de données

mardi 21 février 2006 à 19:11:32 | [allegro] c++: saisi de données

lord anubis

Salut, comme vous l'avez certainement compris, je cherche une fonction, sous allegro, qui permette à l'utilisateur de saisir des données, traitable par le programme.
Merci d'avance.



@+Cool
mercredi 22 février 2006 à 11:52:05 | Re : [allegro] c++: saisi de données

xboxut

 salut, voici un code d exmple fonctionnel qu'on m a fait lorsque j apprenais allegro sur allegro.cc,les crédits vont a 23yrold3yrold le post original est la : [ Lien ]






edittext.cpp #include <allegro.h> #include <string> using namespace std; #define WHITE makecol(255, 255, 255) int main() { // typical Allegro initialization allegro_init(); install_keyboard(); set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0); // all variables are here BITMAP* buffer = create_bitmap(320, 240); // initialize the double buffer string edittext; // an empty string for editting string::iterator iter = edittext.begin(); // string iterator int caret = 0; // tracks the text caret bool insert = true; // true of should text be inserted // the game loop do { while(keypressed()) { int newkey = readkey(); char ASCII = newkey & 0xff; char scancode = newkey >> 8; // a character key was pressed; add it to the string if(ASCII >= 32 && ASCII <= 126) { // add the new char, inserting or replacing as need be if(insert || iter == edittext.end()) iter = edittext.insert(iter, ASCII); else edittext.replace(caret, 1, 1, ASCII); // increment both the caret and the iterator caret++; iter++; } // some other, "special" key was pressed; handle it here else switch(scancode) { case KEY_DEL: if(iter != edittext.end()) iter = edittext.erase(iter); break; case KEY_BACKSPACE: if(iter != edittext.begin()) { caret--; iter--; iter = edittext.erase(iter); } break; case KEY_RIGHT: if(iter != edittext.end()) caret++, iter++; break; case KEY_LEFT: if(iter != edittext.begin()) caret--, iter--; break; case KEY_INSERT: if(insert) insert = 0; else insert = 1; break; default: break; } } // clear screen clear(buffer); // output the string to the screen textout(buffer, font, edittext.c_str(), 0, 10, WHITE); // output some stats using Allegro's printf functions textprintf(buffer, font, 0, 20, WHITE, "length: %d", edittext.length()); textprintf(buffer, font, 0, 30, WHITE, "capacity: %d", edittext.capacity()); textprintf(buffer, font, 0, 40, WHITE, "empty?: %d", edittext.empty()); if(insert) textout(buffer, font, "Inserting", 0, 50, WHITE); else textout(buffer, font, "Replacing", 0, 50, WHITE); // draw the caret vline(buffer, caret * 8, 8, 18, WHITE); // blit to screen blit(buffer, screen, 0, 0, 0, 0, 320, 240); }while(!key[KEY_ESC]); // end of game loop // clean up destroy_bitmap(buffer); set_gfx_mode(GFX_TEXT, 0, 0, 0, 0); return 0; } END_OF_MAIN()

In C:

// edittext.c #include <allegro.h>  #define BUFFERSIZE 128  int main() {    BITMAP* buffer = NULL;    char    edittext[BUFFERSIZE];    int     caret  = 0;     /* typical Allegro initialization */    allegro_init();    install_keyboard();    set_gfx_mode(GFX_AUTODETECT, 320, 240, 0, 0);     buffer = create_bitmap(320, 240);     do    {       if(keypressed())       {          int  newkey   = readkey();          char ASCII    = newkey & 0xff;          char scancode = newkey >> 8;           /* a character key was pressed; add it to the string */          if(ASCII >= 32 && ASCII <= 126)          {                 if(caret < BUFFERSIZE - 1)                 {                     edittext[caret] = ASCII;                     caret++;                     edittext[caret] = '\0';                 }          }          else if(scancode == KEY_BACKSPACE)          {             if (caret > 0) caret--;             edittext[caret] = '\0';          }       }              /* all drawing goes here */       clear(buffer);       textout(buffer, font, edittext, 0, 10, makecol(255, 255, 255));       vline(buffer, caret * 8, 8, 18, makecol(255, 255, 255));       blit(buffer, screen, 0, 0, 0, 0, 320, 240);     }    while(!key[KEY_ESC]);        destroy_bitmap(buffer);     return 0; } END_OF_MAIN()
mercredi 22 février 2006 à 11:53:35 | Re : [allegro] c++: saisi de données

xboxut

arf ptit probleme de textbox :'( desolé pour le dérangement


Cette discussion est classée dans : données, allegro, saisi


Répondre à ce message

Sujets en rapport avec ce message

Lecture et ecriture d'une base de données access [ par thino ] SalutJe voudrai avoir un code pour accéder à ma base de données sur access par la methode d'accès DAO. Exportations de données vers Word ou Excel [ par sebastien ] Bonjour, je suis étudiant (débutant en informatique) et dans le cadre de mon cours d'informatique je dois réaliser une petite application Base de donn Exportation de données access depuis borland c++ builder [ par sebastien ] Bonjour, je suis étudiant (débutant en informatique) et dans le cadre de mon cours d'informatique je dois réaliser une petite application Base de donn Espoir.Installation de allegro sur Visual c++ 6 [ par garon ] Bonjour.C est par espoir de trouver une bonne ame capable de m expliquer comment on install Winallegro sur visual 6c++.Merci par avance. Accéder aux données d'une carte flash [ par Yoy ] Je souhaite pouvoir lire les données d'une carte flash insérée dans un connecteur PCMCIA d'un portable.La carte flash contient des données qui ne sont les acces aux données en gtk+ [ par ahmed ] comment se fait l'acces aux bases de donneés en gtk+...est ce qu'il y a un widget qui est responsable de l'access aux bases de données ? Accéder à une source de données ODBC [ par Alain ] Bonjour, j'aimerais savoir si il est possible et comment (exemples, site,...) accéder à une source de données ODBC comme en Java. Merci de votre aide, Connexion à une base de données SQL Server via Internet ? [ par SharKy ] J'aimerai savoir s'il est possible de se connecter à un ebase de données SQL Server via Internet selon l'adresse IP du serveur. Une fois la connecion Conversion de types de données... [ par nullspace ] J'ai jamais réussis à trouver une bonne solution pour convertir un type de variable dans une autre variable ayant un autre type.Par exemple...si j'ai connexion a une base de données [ par wres ] je voudré juste savoir comment je pe a partir de Visual C++ 6 (MFC), me connecter a une base de données créé sous access 2000 (.mdb) !si kelkun sait c


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales