1

En C, quand utilise un "dialogue-box" et qu' on met plusieurs "request", comment fait-on pour obtenir les "resultats" de chaques request separement ? et plus generalement, comment ça marche les dialogue-box ?
projet en cours XiaoXiaoShow

2

in the doc of tigcc !!!!!!!!
warau kado niha fuku kitaru.

#trifouet#!!!

3

DTC !
*** Ne sous-estimez pas la puissance de la Marmotte ***
© Marmotte Team : LaMarmotte, sBibi, Vark & sabrina

4

http://tigcc.ticalc.org/doc/dialogs.html#DialogDo

C'est là-dedans. À l'endroit où le paramètre RequestBuffer est expliqué.

5

Mettre plusieurs requests est-il possible dans un dialog standard (je veux dire, un dialog qui n'utilise pas des trucs qui sont dans les updates non encore ajoutés à TIGCCLIB) ?
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

6

Pourquoi pas ?
Que font les updates ?

[offtopic]Comment faire pour faire un Dialog avec un scroll quand il y a plus d'options que la fenêtre ? (comme le menu Mode, ou Clock). Peut-être que c'est un gros dans la doc mais je trouve pas smile

7

Ah je suis tombé là dessus : At the moment, I still don't know how to create a dialog with function keys (like "MODE" and "VAR-LINK" dialogs), nor a dialog with scrolling items (like "UNITS" dialogs)..
Je vais chercher alors ...

8

C'est dans les updates, il me semble. Mais on n'a pas encore eu le temps de les intégrer à la documentation, surtout parce qu'il y a des erreurs. Par exemple des définitions de structures à taille variable qui ne marcheront absolument pas. (Le problème est que les structures en question sont des structures contenant plusieurs structures de taille variable, et que ça ne correspond à aucune structure C. Ce n'est ni du GNU C, ni du C99 en tout cas.) Les informations sont correctes, mais les déclarations ne le sont pas, et c'est surtout pour ça que les informations ne sont pas encore intégrées. (Une autre raison est que l'angais en lequel c'est écrit est horrible. Il y a beaucoup de fautes à corriger.)
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

9

je sai qu'un gars avait écrit de la doc (et peut-être des header pr aller avec) qui servait à faire ça
(boites de dlg avec plus de possibilités que ce que ne propose TIGCCLIB pr le moment, telles le scrolling smile)
il avait du poster son truc sur le forum de la TICT, je crois...
mais ça remonte à super super longtemps...
(avant le moment où j'ai commencé à mettre de côté les docs interessantes que je trouvais... je viens de vérifier, je l'ai pas retrouvé dans mon répertoire "Doc_TI"... mais je crois que je l'avais imprimé... il doit être à Lyon, vu que j'ai plus aucune doc pr TI chez moi sad)

par contre, je sais plus si ct pr TIGCC ou le tiflashstudio
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

10

Bon, voilà:
[Main]
Name=DialogAddScrollRegion
Type=Function
Subtype=Macro
Header Files=dialogs.h
Definition=HANDLE DialogAddScrollRegion (HANDLE Handle, short flags, short x, short y, unsigned short x1, unsigned short y1, unsigned short FirstItem, unsigned short LastItem, unsigned short NumDspItems, unsigned short TotNumItems, unsigned short ItemHeight);

[Description]
Adds an rectangular item-scrolling region to a dialog box.

[Explanation]
DialogAddScrollRegion adds a rectangular item-scrolling region to the dialog structure associated with handle <EM>Handle</EM> from the (<EM>x</EM>, <EM>y</EM>) position to the (<EM>x1</EM>, <EM>y1</EM>) position, where coordinates are relative to the top-left corner of the dialog box.<BR>
A scroll region defines a group of items that will scroll as the user moves through the items. 
The identification number of the first scrollable should be set in <EM>FirstItem</EM> and the last scrollable item in <EM>LastItem</EM>. <EM>NumDspItems</EM> defines the number of items that are displayed at one time. The total number of scrollable item should be set in <EM>TotNumItems</EM> and the height of each item in <EM>ItemHeight</EM>.Every scrollable item must be defined contiguously and have the DF_SCROLLABLE flag set and mustn't be a MENU, a HEADER or an XFLAGS type. The coordinates of the scrollable items are relative to the dialog box except that they may extend beyond the bottom coordinate of the dialog box. They are defined assuming a virtual scroll region.
<BR><BR>
It's very easy to make display bugs with this function (Of course that won't crash your calculator but the dialog can become easily ugly) ; so here is a method you can use to avoid those bugs ; First, the standard item height is the height of the biggest item ( oftently the EDIT item which is 10 pixel high), so the minimum value in <EM>ItemHeight</EM> should be 10 in most case. Then, to avoid any display bug, the <EM>y</EM> axis should be the y value of your first displayed item - 2 and <EM>y1</EM> axis should be the y value of your last displayed item + 8. (i.e. If you wish to scroll 8 items and just display items 3 by 3 and the first scrollable item is item number 4 (the last displayed item at the begining is therefore item 6) so the calculation should be : <EM>y</EM>=(item 4 y axis)-2 and <EM>y1</EM>=(item 6 y axis)+8).The <EM>x1</EM>-<EM>x</EM> should also be greater than the width of the largest item (else it will result in display bugs). I don't really understand the utility of such a <EM>TotNumItems</EM> parameter as it should always be equal to <EM>LastItem</EM> - <EM>FirstItem</EM> + 1. The flag DF_CLR_ON_REDRAW is very usefull and should be set in most cases (see below).
<BR><BR>
<STRONG>Note :</STRONG> If you use a SCROLL_REGION, it must be the first item defined in the dialog box. A dialog box can therefore have at most one scroll region.
<BR><BR>
<STRONG>Beware :</STRONG> Items creation order is very important as it automatically gives each item an identification number (the first created item will have zero for identification number, the second one : '1', ...). Every function that creates an item (i.e. all the functions beginning with 'MenuAdd...') will increase this identification number.<BR>
DialogAddScrollRegion is in fact a macro created for your convenience with <A HREF="$$LINK(DialogAdd)">DialogAdd</A> and D_SCROLL_REGION as the <EM>ItemType</EM>.
<BR><BR>
Parameter <EM>flags</EM> can be a combination of the following, defined in <A HREF="$$LINK(DialogFlags)">DialogFlags</A> enumeration :<BR>
<TABLE BORDER CELLPADDING="3">
<TR>
  <TD>DF_SKIP</TD>
  <TD>This item is skipped since the system maintains this flag. (i.e. you won't be able to focus on/select this item until the flag is unset).</TD>
</TR>
<TR>
  <TD>DF_SCREEN_SAVE</TD>
  <TD>The dialog code saves the area underneath the dialog box when it is started, DB_MEMFULL returned if it cannot.</TD>
</TR>
<TR>
  <TD>DF_CLR_ON_REDRAW</TD>
  <TD>Clear the entire visible scroll region when redrawn. If you do not set this flag, the scroll region will not be cleared before beeing redrawn and you might still see previous inscriptions underneath the new ones.</TD>
</TR>
</TABLE>
<BR><BR>
DialogAddScrollRegion returns <A HREF="$$LINK(alloc.h/H_NULL)">H_NULL</A>
in a case of error, may return DB_MEMFULL if you used DF_SCREEN_SAVE, else returns <EM>Handle</EM>. This routine (as well as all other 'DialogAdd...' routines) may cause heap compression.


et:
<TR>
  <TD>DF_SCROLLABLE</TD>
  <TD>Any Type</TD>
  <TD>Set this flag if you want this item to be scrollable in a SCROLL_REGION.</TD>
</TR>
<TR>

où DF_SCROLLABLE = 0x02.

attention C'est totalement préliminaire. Utilisez ces informations à votre propre risque.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

11

Ok, merci.

Mais finalement tout est expliqué dans la documentation de TI Flash Studio smile

12

Peut-être pas aussi bien que dans cet update de TIGCCLIB... La doc de TIFS est en général relativement incomplète.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

13

solid a dit "in the doc of tigcc !!!!!!!! "
--->admet tout de meme que la doc de tigcc n'est pas si facile à comprendre!

Elynx a dit:"comment ca marche les dialog box?"
--->Apres avoir cree ta zone memoire pour menu,c'est toi qui decide,par differentes lignes ,quels elements tu va ajouter dedans:le titre et les boutons,des pulldown,des request ou du simple texte.(En n'oubliant pas ensuite de desalouer l'espace crée pour le menu).
-->tu veux des exemples?
(par contre je n'ai toujours mis qu'un request ou pulldown par boite)
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

14

XDanger
a écrit : Peut-être pas aussi bien que dans cet update de TIGCCLIB... La doc de TIFS est en général relativement incomplète.

Vous y êtes allez à coups de désassembleur ?

15

Bien sûr. Toutes les fonctions sont en principe vérifiées sur VTI. Les wrappers pour AMS 1.xx ont été trouvés avec VTI.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

16

je precise mes questions sur les dialog-box:
"DialogNew acts like DialogNewSimple, but accepts a pointer to the user function UserFunc as third parameter"(doc de tigcc)

Est-ce que quelqu'un sait ou je peux trouver des exemples utilisation d'un DialogueNew AVEC ce 3° parametre et que ça plante pas

On peut faire des trucs vachement compliqués avec cette fonction ?!
par exemple:quand on a bcp d'options dans un dialog on fait scroller vers le bas comme le menu MODE de la ti ?

et aussi, quand on fait :
char toto[8] //on obtient un 'mot' de taille max 8 caracteres et initialement 'nul' c'est a dire 
//egale a ""

si apres je l'allonge avec d'autre caractere et que je veux l'initialiser comme au debut : ""
comment je fais?
pourquoi ça ne marche pas :
strcpy(toto,"")
????

projet en cours XiaoXiaoShow

17

Il suffit de faire toto[0]=0;

18

XDanger
a écrit : Bien sûr. Toutes les fonctions sont en principe vérifiées sur VTI. Les wrappers pour AMS 1.xx ont été trouvés avec VTI.

Ok, vous ête courageux mais c'est une bonne chose smile

19

ordivore a écrit :
solid a dit "in the doc of tigcc !!!!!!!! " --->admet tout de meme que la doc de tigcc n'est pas si facile à comprendre!

rage On s'efforce de faire une documentation claire, et c'est pour entendre ça? La documentation est très claire, à condition de comprendre l'anglais, évidemment.
Elynx a écrit :
je precise mes questions sur les dialog-box:
"DialogNew acts like DialogNewSimple, but accepts a pointer to the user function UserFunc as third parameter"(doc de tigcc)
[...] On peut faire des trucs vachement compliqués avec cette fonction ?!

Oui.
par exemple:quand on a bcp d'options dans un dialog on fait scroller vers le bas comme le menu MODE de la ti ?

Pas besoin de la fonction pour ça. Tout est dans le message #9.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

20

tout d'abord:rabbit
desolé mais c'est une copine qui a insister pour mettre ce stupide smileys..

bon ma question:

jackiechan - Posté : 06-01-2003

Il suffit de faire toto[0]=0;


non, ce que je veux c'est :
la liste de char toto (qui est = par exple a : "hello world!!!!!")
je veux la transformer en "" wink


et pour les dialogue, personne n'a d'exple d'utilisation de cette function 'UserFunc' ?


projet en cours XiaoXiaoShow

21

Mais si tu fais toto[0]=0, si tu affiches ta chaine, ça affichera "" (c'est-à-dire rien).

22

ok
projet en cours XiaoXiaoShow

23

En fait cette UserFunc n'est pas une fonction definie--->C'est a toi de la faire

char *UserFunc(short,char) (peu importe!) est un pointeur sur une fonction du genre
char FctPerso(short x,char message)
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

24

Kevin,qu'est ce que t'as fait dans le message #9?eekeekeek
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

25

J'ai posté un des fichiers .hsf sur les boîtes de dialogues qu'on n'a pas encore eu le temps d'intégrer dans la documentation de TIGCC.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

26

en fait le fait que les balises ne passent pas l'a un peu effrayé grin
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

27

Tout a fait!oui
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

28

Elle est ou cette lib?
Un newbie c'est là pour apprendre.
Bravo Boo et Yaro,votre site est génial!

29

quelle lib ? tigcclib ? Dans tigcc

30

ça y est j'ai reussi a utiliser une 3° fonction dans DialogNew,merci bcp!

Mais dans la doc de TIGCC il est question de 'absolute address' en rapport avec cette fonction.
Comment je fais pour recuperer dans l'exemple suivant ce qu'il y a dans le request x ?
(sachant que ce que je vais faire apres c'est aditionner l'ensemble des contenus des requests
pour avoir le resultat a la place du 100%, dans x==6 : ) )

char FctPerso(short x,char y)
{
if (x==1) { };
if (x==2) { };
if (x==3) { };
if (x==4) { };
if (x==5) { };

return 1 ;
}
// Main Function
void _main(void)
{
char buffer[5][4] = {"20","20","20","20","20"} ;
HANDLE handle = DialogNew (16*7, 100,FctPerso);
DialogAddTitle (handle, "Activity allocations", BT_OK, BT_NONE);//x=0
DialogAddRequest (handle, 3, 15, "Agriculture:", 0, 3, 4);//x=1
DialogAddRequest (handle, 3, 27, "Taxes: ", 4, 3, 4);//x=2
DialogAddRequest (handle, 3, 39, "Industrie: ", 8, 3, 4);//x=3
DialogAddRequest (handle, 3, 51, "Militaire: ", 12, 3, 4);//x=4
DialogAddRequest (handle, 3, 63, "Mining: ", 16, 3, 4);//x=5
DialogAddText (handle, 3, 75, "Total: 100%");//x=6
if (DialogDo (handle, CENTER, CENTER, buffer, NULL) == KEY_ENTER)
HeapFree (handle);
projet en cours XiaoXiaoShow