1

rebonjour
une nouvelle question ^^
est-il possible que la TI puisse sortir des touches que l'utilisateur n'a pas appuyé ? par exemple quand on appuie sur [Sto>] sans n'avoir rien mis devant, la TI ajoute automatiquement ans(1) comme si on avait appuyé sur [Ans] avant

programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

2

3

C'est le meme comportement avec les operateurs +,-,*,/,2, etc...
N/A

4

Techniquement, ça doit être un truc du genre:
* l'application TIHOME reçoit un CM_KEYPRESS avec la valeur KEY_STO (ou '+', etc.);
* elle regarde si le buffer est vide;
* elle rajoute un ans(1) si le buffer est vide, avant de rajouter la touche que l'utilisateur a pressée.
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

5

oui mais comment il rajoute dans le buffer ?
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

6

c'est possible qu'il envoie un CM_PASTE (ou un truc qui ressemble, pas la doc sous les yeux)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

7


0x722 CM_PASTE
CM_MENU_PASTE (depr.) Menu command: Paste. Dedicated for pasting text from the clipboard to the edit buffer at the cursor position, replacing any eventually selected text. Should eventually be handled by the default text editor handler.


ça ?
et comment on peut l'utiliser dans un code ?

...
EVENT *ev;
ev->type=CM_PASTE;
...
...


?
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

8

recherche CM_PASTE dans les exemples peut-être ?

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

9

quels exemples ? ceux de la doc de tigcc ?
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

10

J'avais fait ça il y a pas mal de temps. Je n'avais pas utilisé PASTE parce que je ne voulais pas remplacer le presse-papier il me semble, donc je simulais l'appuis sur les touches.
void sendStringToHome(char *str, bool effacer)
{
	EVENT ev;
	short id = EV_getAppID("TIHOME");
	
	if(effacer)
	{
		ev.Type = CM_CLEAR;
		EV_sendEvent(id, &ev);
	}

	ev.extra.Key.Mod = 0;
	ev.Type = CM_KEYPRESS;

	while(*str)
	{
		ev.extra.Key.Code = *str++;
		EV_sendEvent(id, &ev);
	}
}


Sinon avec un ptit hack qui va chercher l'adresse du buffer dans le code d'une ROM-Call, on peut lire le texte existant
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

11

euh en fait c'est CM_PASTE_STRING ou CM_PASTE_HANDLE, et ça n'a rien à voir avec le presse papier -- c'est ce qu'utilise par exemple le catalogue pour taper la commande sélectionnée smile
  EVENT ev[1];
  HANDLE h = HeapAlloc(strlen(chaine)+1);
  strcpy(HeapDeref(h), chaine);
  ev->Type = CM_PASTE_HANDLE;
  ev->extra.hPasteText = h;
  EV_sendEvent(id, ev);  /* h sera libéré automatiquement par HOME une fois qu'il en aura pris connaissance */

(ou un truc dans le genre, flemme de tester)

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

12

Pollux (./11) :
euh en fait c'est CM_PASTE_STRING ou CM_PASTE_HANDLE, et ça n'a rien à voir avec le presse papier -- c'est ce qu'utilise par exemple le catalogue pour taper la commande sélectionnée smile

Ah bon smile, nom trompeur alors :'(
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

13

paste, v.tr.

1. To cause to adhere by or as if by applying paste.
2. To cover with something by or as if by pasting: He pasted the wall with burlap. The wall is pasted with splotches. 3. Computer Science. To insert (text, graphics, or other data) into a document or file.

rien à voir avec le presse-papier donc tongue

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

14

Oui mais pour un français paste est très connoté presse-papier wink
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

15

oui ^^

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

16

paste=coller non ?
j'en suis pas sûr

Twindruff>ton programme il fait quoi ? ça sert à simuler un appui sur [Clear] pour effacer une chaine ?
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic

17

tama (./16) :
paste=coller non ?

Ben Pollux nous a donné les définitions plus haut smile
tama (./16) :
Twindruff>ton programme il fait quoi ? ça sert à simuler un appui sur [Clear] pour effacer une chaine ?

Il efface le buffer si effacer est non nul, puis
il envoie str dans le buffer lettre par lettre (mais pour envoyer la chaine, autant utiliser CM_PASTE_STRING qui est fait pour ça).
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

18

ok.
je vais essayer ça smile
programmeur sur TI ^^

mon blog sur les TI => clic

mon (p'tit) fofo sur les TI => clic