1

Bonjour,

Je débute en programmation GEM avec Lattice C 5.6 sous Falcon 030.
Je développe un calculateur financier. Je m'essaye à la programmation des fenêtres GEM.

Je me demande comment on peut afficher quelque chose dans une fenêtre. J'ai une belle fenêtre vide, que je peux fermer, aggrandir, etc... mais je ne sais pas comment y mettre du contenu (ex. du texte) et le gérer...

Merci

2

brainois (./1) :
Bonjour,

Je débute en programmation GEM avec Lattice C 5.6 sous Falcon 030.
Je développe un calculateur financier. Je m'essaye à la programmation des fenêtres GEM.

Je me demande comment on peut afficher quelque chose dans une fenêtre. J'ai une belle fenêtre vide, que je peux fermer, aggrandir, etc... mais je ne sais pas comment y mettre du contenu (ex. du texte) et le gérer...

Merci



Alors accroche toi.

Tout ce qui concerne l'interieur des fenetres, ben c'est ton probleme. Le Gem va t'envoyer des informations sur ce que clique l'utilisateur, mais tout ce qui concerne le redessin des fenetres c'est ton probleme.

Bon partie pratique, si tu as un livre de dev, regarde a Evnt_mesag ou Evnt_multi. Faut utiliser cette fonction AES dans ta boucle principale, elle permet de laisser le Gem s'occuper des fenetres et de te renvoyer les infos qui ont été cliquer. Et après faut regarder le détail des messages dans ce meme livre. En C je peux pas trop t'aider, en Gfa un peu en ASM je peux te donner memes des exemples, mais je penses que quelq'un ici aura soit un lien soit un exemple pour du C. Mais regarde deja Evnt_mesag et les définitions des messages.

Il y en a qui te concerne directement, c'est le message de Redraw qui te sera adressé pour que tu redessines ta fenetre, mais faire gaffe a clipper tes 'gribouillis' pour ta sortir de ta fenetre.

Voili, voila en esperant t'avoir un peu aider.

GT smile
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

3

Merci GT,

Concrètement, j'ai effectivement un boucle d'événement. Je suis au stade de la create (wind_create) et l'affichage (wind_open). J'ai donc une magnifique fenêtre avec tous ses gadgets. Mais on y voit à travers, càd le fonds d'écran...
Je cherche donc à:
* remplir ma fenêtre avec un fonds blanc
* y afficher du texte, que l'on pourra lire en scrollant.

Je me demande comment faire... Quelles fonctions utiliser pour afficher du texte dans un fenêtre...
L'espace de travail de la fenêtre est-il un objet que l'on peut manipuler?

D'avance merci.

François

4

Je n'ai pas toucher au Gem depuis quelques annees maintenant, donc on va oublier.. Si tu ne veux pas te prendre la tete, essayes Windom...
Codeur retraité coulant des jours paisibles...

Je raconte ma vie: http://blog.frosties.org/

5

brainois (./3) :
Merci GT,

Concrètement, j'ai effectivement un boucle d'événement. Je suis au stade de la create (wind_create) et l'affichage (wind_open). J'ai donc une magnifique fenêtre avec tous ses gadgets. Mais on y voit à travers, càd le fonds d'écran...
Je cherche donc à:
* remplir ma fenêtre avec un fonds blanc
* y afficher du texte, que l'on pourra lire en scrollant.

Je me demande comment faire... Quelles fonctions utiliser pour afficher du texte dans un fenêtre...
L'espace de travail de la fenêtre est-il un objet que l'on peut manipuler?

D'avance merci.

François


D'abord tu dois remplir ta fenetre toi meme, donc VDI definition de la couleur de fond de remplissage Vsf_Color, puis un V_recfl pour afficher un fond blanc. Warning !! yel l'AES te renvoi des coordonnées x,y et largeur et hauteur et la Vdi attend du X,Y,X1,Y1 donc ne pas oublier de convertir sinon bonjour les surprises.

Pour le texte tu as Vg_text. Joue deja avec cela après on pourra discuter des ascenseurs wink

GT presque un pro comme Rajah avec le Gem top

Edit : P.S. Frosti tu sors grin
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

6

Merci GT,

J'ai effectivement les manuels de Lattice C 5.6... Je vais donc suivre ton conseil et tester un peu les sorties graphiques. Je reviendrai plus tard pour le scrolling.

François

7

brainois (./6) :
Merci GT,

J'ai effectivement les manuels de Lattice C 5.6... Je vais donc suivre ton conseil et tester un peu les sorties graphiques. Je reviendrai plus tard pour le scrolling.

François



Deux petites choses, l'AES te renvoit une liste de rectangles, car la zone a afficher n'est peut etre pas un carré. Mais pour l'instant si tu n'as qu'une application qui tourne, tu lis justes les coordonnées du premier rectangle, histoire de faire tes essais et comprendre. Une autre chose, avant toute sortie graphique faire un clipping (Vs_clip) avec les coordonnées du rectangle qu'on te renvoit car certaines fonctions peuvent deborder (Par exemple le texte) du cadre et empieter sur une zone qui n'est pas a toi O_O

C'est parfois un peu dur et lourd a debuter dans ce milieu par contre ca peux devenir très puissant comme jouet le duo AES / VDI malgré leurs bugs grin

GT smile
avatar
je sais pas depuis que Fadest nous mets de la zik partout dans ses jeux l'univers a été ebranlé (LordKraken)

8

Je te conseillerais de récupérer si ce n'est déjà fait le DDFS (par exemple sur le site de Mister DID : http://microstalgia.fr.st )
Sinon, c'est comme le dit Monsieur GT :
- boucle pour lire les évènements
- boucle de récupération des coordonnées des rectangles (car ta fenetre peut être masquée par une autre de ton appli, un accessoire, une autre appli en multitache, donc le GEM te renvoie une liste de rectangles visibles)
- clipping sur ce rectangle pour être sur de ne pas déborder (en gros, pour du texte, ça t'évite de calculer que tel mot doit être coupé à telle lettre car la fenetre n'est pas assez grande pour afficher le reste)
- affichage de ce rectangle (et là, c'est effectivement à toi de le gérer, le mieux étant d'utiliser les fonctions VDI, pour pas gacher tout ce qui est fait auparavant)


avatar
Futur ex éditeur de jeux Atari Lynx et Nintendo Game Boy
https://yastuna-games.com

9

brainois (./6) :
J'ai effectivement les manuels de Lattice C 5.6... Je vais donc suivre ton conseil et tester un peu les sorties graphiques. Je reviendrai plus tard pour le scrolling.

Je conseille très chaudement la série d'articles de Claude Attard dans ST Mag. Les numéros sont disponibles sur micronostalgia et les disquettes, avec les sources C, sur le site ST Mag, partie archives, si je ne m'abuse. Ça commence vers le numéro 80.

Bon amusement.

JF

10

Merci à tous pour ces conseils at liens très précieux....

A bientôt.