--------------------------------------------- elfcheck - простая прога, которая проверяет, используются ли в эльфах (включая эльфлоадер) функции, которых нет в либе. simple tool which checks whether there are functions used in elfs (including elfloader) that are not included in library.
Q: How use elfcheck? Q: Как использовать? R: Look this page here
saveevents.elf - сохранение евентов (EVENT)
(c) den_po
---------------------------------------------
Шаблоны эльфов для IAR Некоторые полезные для разработчиков шаблоны эльфов. На данный момент имеются: 1) Пустой эльф 2) Пустой эльф со своей книгой 3) Эльф-рисовальщик на главном экране 4) Эльф для RegFile (по сути - пустой эльф, но с дополнительными входными параметрами) 5) Эльф с графическим интерфейсом - списком 6) Эльф-патч, который можно конвертировать в *.vkp при помощи elf2vkp
Эльфописатели, помогите! Собрал по кусочкам эльф, который на месте батарейки рисует часы, меняющие цвет в зависимости от заряда. Вот код который рисует (взято из урока 2 по графическому эльфу с се-тим):
Код:
void DrawHighlightID(int Font,int SIDtime,int CEN, int XPos, int YPos, int MaxXPos, int MaxYPos, int borderColor, int NormalColor) { SetFont(Font); //Устанавливаем шрифт из первого параметра функции. //Рисуем текст n-ное количество раз с разными координатами: DrawString(SIDtime,CEN,XPos-1,YPos-1,MaxXPos-1,MaxYPos,60,0x05,borderColor,borderColor); DrawString(SIDtime,CEN,XPos-1,YPos+1,MaxXPos-1,MaxYPos,60,0x05,borderColor,borderColor); DrawString(SIDtime,CEN,XPos+1,YPos-1,MaxXPos+1,MaxYPos,60,0x05,borderColor,borderColor); DrawString(SIDtime,CEN,XPos+1,YPos+1,MaxXPos+1,MaxYPos,60,0x05,borderColor,borderColor); //Рисуем с основными координатами: DrawString(SIDtime,CEN,XPos,YPos,MaxXPos,MaxYPos,60,0x05,NormalColor,NormalColor); }
void Draw(DISP_OBJ * db,int r1, int r2,int r3) { // вызываем родной onRedraw. SIonRedraw(db,r1,r2,r3); { if (IS_ENABLED) { int X_POS=140; int Y_POS=0; REQUEST_DATEANDTIME_GET(0,&dt); //Занесём инфу о текущем времени в структуру dt tm=dt.time; Time=Time2ID(&tm,2,0); //Получим ID времени //очистили прямоугольник DrawRect(X_POS,Y_POS,X_POS+40,Y_POS+16,0x00000000,0x00000000) ;
//печатаем время DrawHighlightID(FONT_E_14B, Time, 0, X_POS, Y_POS, X_POS+40, Y_POS+16, clBlack, BRUSH); //Нарисуем TextFree(Time); //Очистим память от него (времени) } } }
void onTimer(u16 r0, void * r1) { GetBattaryState(SYNC,&batt); //Заносим инфу о батарее в структуру batt int Batt=(int)batt.RemainingCapacityInPercent;//заносим в переменную Batt типа int текущий заряд в процентахSIDheap=int2strID(GetFreeBytesOnHeap()); switch (Batt/10) { case 0:{BRUSH=BRUSH_COLOR0; break;} case 1:{BRUSH=BRUSH_COLOR1; break;} case 2:{BRUSH=BRUSH_COLOR2; break;} case 3:{BRUSH=BRUSH_COLOR3; break;} case 4:{BRUSH=BRUSH_COLOR4; break;} case 5:{BRUSH=BRUSH_COLOR5; break;} case 6:{BRUSH=BRUSH_COLOR6; break;} case 7:{BRUSH=BRUSH_COLOR7; break;} case 8:{BRUSH=BRUSH_COLOR8; break;} case 9:{BRUSH=BRUSH_COLOR9; break;} case 10:{BRUSH=BRUSH_COLOR10; break;} } Timer_ReSet(&timer,1000,onTimer,0); InvalidateRect(StatusRow,0);
}
Подскажите, пожалуйста, как поднять часы чуть выше, координата по У=0, но рисует ниже чем мне хотелось бы.
Прикрепленный к сообщению файл:
UltraShot
Developer/Moder
Регистрация: 21.5.07 Сообщений: 1729 Репутация: 1827 Откуда: Санкт-Петербург / Череповец
Вы не можете начинать темы. Вы не можете редактировать свои сообщения. Вы не можете создавать опросы. Вы не можете вкладывать файлы в сообщения. Вы не можете отвечать на сообщения. Вы не можете удалять свои сообщения. Вы не можете голосовать.