|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 4 ![]() |
Bonjour à tous!
Je commence à programmer en Pascal sous Windowns X_P et j'utilise FreePascal afin de compiler mon code. Je souhaite réaliser une petite application graphique dos afin de prendre en main le langage avant de ma lancer dans un projet plus conséquent. J'ai cependant rencontré plusieurs problèmes que vous pourrez peut être m'aider à résoudre. Voici le programme sur lequel je me suis appuyé pour faire mes essais: Code :
- Le programme se compile correctement et ce lance semble t'il correctement cependant il se passe 6 bonnes seconde entre l'affichage de la fenêtre de saisie texte et l'affichage de la fenêtre graphique. Est ce normal ? N'est il pas possible d'executer l'affichage plus rapidement ? - Le code comporte l'instruction "readln" cependant lorsque la fenêtre graphique est apparue avec le message "We are now in 640 x 480 x 256 colors (press <Return> to continue)" et bien lorsque j'appuie sur Return, il ne se passe rien. Il faut que je ferme le fernêtre graphique, alors seulement dans la fenêtre de texte cela fonctionne et la touche return permet de quitter le programme. Pourriez vous éclairer mes lanternes sur le comportement de ce code? Je vous remercie par avance. |
||
|
|
00
|
|
|
#2 |
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 4 ![]() |
Après avoir visité d'autre forums, il semblerait que lors de l'ouverture d'une fenêtre graphique, celle ci devient la fenêtre active, or c'est dans la fenêtre de texte que les actions sont attendues si bien qu'en rendant le fenêtre de texte active le programme répond au instructions qui attendent une actions telle que dans mon cas le "readln".
Savez vous s'il existe une solution pour le programme réagisse aux actions dans la fenêtre graphique ? Merci de votre aide. Pfeifer |
|
|
00
|
|
|
#3 | ||
![]() ![]() ![]() |
Bonjour et bienvenue !
La fenêtre graphique créée au moment de l'exécution du programme est une vraie fenêtre GUI Windows. Pour simuler le ReadLn dans la fenêtre graphique, une solution est d'utiliser l'API : la fonction GetKeyState renvoie l'état actuel d'une touche du clavier. Il faut donc déclarer l'unité Windows dans l'en-tête : et remplacer le ReadLn par une boucle comme celle-ci : Code :
J'ai testé cette solution avec succès. Mais ce n'est pas très élégant, d'autres en trouveront peut-être de meilleures. Bonne prog !
__________________
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell] |
||
|
10
|
|
|
#4 |
|
Invité de passage
![]() Inscription : octobre 2008 Messages : 4 ![]() |
Ok, merci beaucoup pour ces précisions, je vais creuser la question.
Par contre en ce qui concerne la lenteur de l'initialisation de la fenêtre graphique? Avez vous une idée? Pfeifer |
|
|
00
|
|
|
#5 |
![]() ![]() ![]() |
J'imagine que tu exécutes l'appli à partir de la console en plein écran ? Si oui, fais l'expérience de la démarrer depuis la console fenêtrée : le démarrage devrait être beaucoup plus rapide.
Windows met pas mal de temps pour commuter du mode texte plein écran vers le mode graphique fenêtré (et vice-versa d'ailleurs).
__________________
Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell] |
|
00
|
|
|
#6 | |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 419 ![]() |
Kai,
Citation:
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() Roland ChastainInscription : décembre 2011 Messages : 689 ![]() |
La documentation mise à jour (?) en décembre 2011 propose toujours le même exemple, et il ne se passe toujours rien quand on appuie sur Return.
Merci à Alcatîz pour la solution proposée. Une autre solution qui est indiquée ici est d'utiliser l'unité WinCrt et ses fonctions ReadKey et KeyPressed, les fonctions homonymes de l'unité Crt étant indisponibles en mode graphique.
__________________
L'Art est long et le Temps est court. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com