1

Bonjour a tous voila je voudrai mettre une image dans la toolbarre bon je sait faire pas de probleme mais mon probleme c'est le faire a partir dun pic qu'on a ouver comment on fait??? merci

2

en gros comment utiliser un pic comme icone????

3

Tu prends la structure BITMAP que contient ton fichier.
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é

4

ok et apres c facile?

5

ben non ca marche pas
BITMAP *showpicture(char *nom,short x,short y,short attr) 
{ 
SCR_RECT screen = {{0, 0, 160, 100}};  
short size=((MULTI_EXPR*)HeapDeref(SymFindPtr(SYMSTR (nom),0)->handle))->Size; 
void *buffer=malloc(size); 
FILE *f=fopen(nom,"rb"); 
fread(buffer,1,size,f); 
fclose(f); 
BitmapPut (x,y,buffer, &screen,attr);
BITMAP *image = (BITMAP *)buffer; 
free(buffer);
return image;
}

BITMAP *image=showpicture(&nom2[k*20],122,42,A_NORMAL);

HANDLE menu_menu= MenuNew(2, LCD_WIDTH, 18);
	HANDLE menu_exec;
	short valeur_menu = 0;

	MenuAddIcon(menu_menu, 0, image, 1, 0);
	menu_exec = MenuBegin(HeapDeref(menu_menu), 0, 0, 0);

	valeur_menu = MenuKey(menu_exec, ngetchx());

ca affiche le pic mai avec un peu de truc parazite en dessou ou au dessus pourquoi?

6

euh t'a verifié la taille ??
sinon tu savais qu'il existait un type icon
typedef struct { 
 unsigned short i[16]; 
} ICON; 

pour l'avoir a partir d'un bitmap dont tu est sur de la taille tu devrais essayer ceci (mais g pas essayé...) :
ICON icone=image->data;
ou un memcpy ce serait pas mal
en tout cas tu dois enlever les bytes du bitmap qui correspondent a sa taille
et pis apres MenuAddIcon(menu_menu, 0, &icone , 1, 0);

euh...

7

hum moi g une kestion aussi ...
comment on fait pour mettre une icone en permanence ? ds un menu custom par exemple...
NTW !!!!!

8

avec ca j'ai toujour des parasite ICON icone=image->data; et avec un memcopy je voi pas comment faire ?????

9

...
moi non plus , je fais comme toi , je cherche
euh...

10

ben si tu trouve tu me fai signe smilesmilesmilesmile merci

11

ba je trouve pas....
g pareil chez moi : mes icones issue de bitmap sont toutes parasitées
euh...

12

ouai je sait pas pourquoi!!!!! il doit bien y avoir un moyen!!!!!

13

ba oui : tu enrengistre tes icones ds des fichiers speciaux comme ca tou va bien....
euh...

14

ah bon tu fait comment????

15

comme ca : (merci a squale 92 pour son exemple ds son tuto !)
#include <tigcclib.h>  

void _main (void)  
{ 	
  HANDLE menu_menu= MenuNew(2, LCD_WIDTH, 18);  // Déclare le menu "non-exécutable".
  HANDLE menu_exec;    // Déclare le "menu exécutable".
  short valeur_menu = 0;     // Pa variable de la valeur qui sera retournée par le menu.
  ICON icone1 = {{0x0, 0xFFFE, 0x2FF9, 0xBF9, 0x2F9, 0xB9, 0x1029, 0x3006, 0x6000, 0x6000, 0xFFFF, 0xFFFF, 0x6000, 0x6000, 0xF000, 0x0}};  // Déclare le premier icône.
  ICON icone2 = {{0x0, 0x0, 0xC0, 0x120, 0x3A0, 0x4C0, 0x880, 0x1100, 0x2200, 0x4400, 0xC800, 0xF000, 0xE000, 0xC000, 0x8000, 0x0}};       // Déclare le second icône.
  FILE *f=fopen("icone","wb");
  fwrite(&icone1,sizeof(ICON),1,f);
  fputc (0, f); 
  fputs ("ICON", f); 
  fputc (0, f); 
  fputc (OTH_TAG, f); 
  fclose(f);
  ICON icone3;
  FILE *f2=fopen("icone","rb");
  fread(&icone3,sizeof(ICON),1,f2);
  fclose(f2);
  MenuAddIcon(menu_menu, 0, &icone3, 1, 0);                    // Crée les Items des menus.
  MenuAddText(menu_menu, 1, "Sous-option 1.1", 11, 0);
  MenuAddText(menu_menu, 1, "Sous-option 1.2", 12, 0);
  MenuAddText(menu_menu, -1, "Opt 2", 2, 0);
  MenuAddText(menu_menu, -1, "Opt 3", 3, 0);
  MenuAddIcon(menu_menu, 0, &icone2, 4, 0);
  MenuAddText(menu_menu, 4, "Sous-option 4.1", 41, 0);
  MenuAddText(menu_menu, 4, "Sous-option 4.2", 42, 0);
  MenuAddText(menu_menu, 4, "Sous-option 4.3", 43, 0);
  MenuAddText(menu_menu, 4, "Sous-option 4.4", 44, 0);
  MenuAddText(menu_menu, 4, "Sous-option 4.5", 45, 0);
  MenuAddText(menu_menu, -1, "Opt 5", 5, 0);
  MenuAddText(menu_menu, 0, "Opt 6", 6, 0);
  MenuAddText(menu_menu, 6,"Sous-option 6.1", 61, 0);
  MenuAddText(menu_menu, 6, "Sous-option 6.2", 62, 0);
  menu_exec = MenuBegin(HeapDeref(menu_menu), 0, 0, 0);   // Permet d'obtenir le "menu-exécutable".

  valeur_menu = MenuKey(menu_exec, ngetchx());      // Active le menu, et stocke la valeur choisie dans la variable valeur_menu.

  clrscr();          // Efface l'écran.
  FontSetSys(F_6x8);  // Sélectionne la police de caractères moyenne.
  printf("Valeur : %d", valeur_menu);   // Affiche cette valeur.
  ngetchx();    // Attend qu'une touche soit pressée. (permet de lire la valeur choisie
}
euh...

16

j'ai meme mieu !!!
#include <tigcclib.h>   
short vachercheruniconedansunfichierpic(char *nom,ICON icone)
{
 short c;
  FILE *f2=fopen(nom,"rb"); 
  fread(&c,sizeof(short),1,f2);
  if(c!=16){fclose(f2);return 0;}//test dimension,
  fread(&c,sizeof(short),1,f2);
  if(c!=16){fclose(f2);return 0;}//test dimensio
  fread(&icone,16*2,1,f2); 
  fclose(f2);
  return 1;
}
void creeruneiconedsunfichierpic(char *nom,ICON icone)
{
  short dim=16;  
  FILE *f=fopen(nom,"wb"); 
  fwrite(&dim,sizeof(short),1,f);
  fwrite(&dim,sizeof(short),1,f);
  fwrite(&icone,sizeof(ICON),1,f); 
  fputc (PIC_TAG, f); 
  fclose(f); 	
}
void _main (void)   
{ 	 

  char cicone[]="main\icone";
  ICON icone = {{0xFFFE, 0x2FF9, 0xBF9, 0x2F9, 0xB9, 0x1029, 0x3006, 0x6000, 0x6000, 0xFFFF, 0xFFFF, 0x6000, 0x6000, 0xF000, 0x0,0}}; 
  creeruneiconedsunfichierpic(cicone,icone);
  ICON icone3;  
  if(vachercheruniconedansunfichierpic(cicone,icone3)==0)return;
  HANDLE menu_menu= MenuNew(2, LCD_WIDTH, 18);   
  HANDLE menu_exec;      
  MenuAddIcon(menu_menu,-1, &icone3, 1, 0); // y'a plu k'a la mettre  !!!  
  menu_exec = MenuBegin(HeapDeref(menu_menu), 0, 0, 0);   
  MenuKey(menu_exec, ngetchx()); 
  MenuEnd(menu_exec);
  HeapUnlock (menu_menu);
  HeapFree(menu_menu);     
} 

edit : correction +precision+recorrection
euh...

17

lol oui mai moi je veut pas mettre un sprite je veu mettre un pic!!! sans parasite

18

je comprend kan meme toujours pas pkoi quant on passe par un bitmap c differrent ....
confus confus
c bizzare packe la on fait la meme chose qu'avec des bitmap, ptet que le bitmapget fait des truc zarb ... confus
euh...

19

lol oui mai moi je veut pas mettre un sprite je veu mettre un pic!!! sans parasite


ba koi y faut que avant tu definisse tous tes icones et pis c tou et t'a remarqué que ds le deuxieme exemple il s'agit D'1 PIC que tu peux traiter en C en tant que bitmap et avec ta calc avec rclpic
euh...

20

essaie d'utiliser le fichier avec la fnc showpic , tu verra !
euh...

21

en gros comment utiliser un pic comme icone????

c'est exactement ce qui est fait ds le 2e exemple
euh...

22

oui lol et ca marche pas d'ailleur sadsadsadsadsadsadsad

23

dsl j'avait fait des ptites betises , maintenant ca marche !!! top
euh...

24

oui!!!!!! merci!!!!!! t super comme mec smilesmilesmilesmilesmilesmilesmilesmilesmilesmilesmilesmilesmile

25

ata y'avait un bug ds certaine condittion ...
la je l'ai corrigé !!!!!!!
euh...

26

eu ouai ya un truc qu je cmprend pas si l'image fais pas 16 tu renvoi 0 mai mon image fai 16 et ca renvoi 0 mdr pk???

27

La différence entre les icônes et les bitmaps est que les bitmaps contiennent les dimensions de celle-ci au début. Une icône est présumée 16x16 (unsigned short i[16] => 16 bits, 16 fois).
Donc si tu affiches une bitmap telle quelle, tu auras des parasites, car au sommet se trouveront tes dimensions et non ton image. C'est pourquoi la fonction vachercheruniconedansunfichierpic doit d'abord lire deux fois un short dans le fichier. Voici un exemple de contenu:
Bitmap: {16,16,données...};
Icône: {données...};
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741