Показать сообщение отдельно
Старый 26.07.2008, 19:49   #78
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Пишем либы для MidletPascal на JAVA

Тут писали, что размер дисплея получается так:
FW.CD.getWidth;  
FW.CD.getHeight
Не работает:
cannot find symbol
symbol  : variable getHeight
location: class javax.microedition.lcdui.Displayable
h=FW.CD.getHeight-y*2;
       ^
- - -
Добавил позже:
Долго же я сам до истины допирал =) Оказывается, надо писать так:
FW.CD.getWidth();   
FW.CD.getHeight(); 
Со скобочками.
- - -
What eto da...
Взгляните сюда. Написал либу. Класс содержит два метода. Первый - init - Высчитывает по специальной формуле размер окошка и создаёт два полупрозрачных чёрных объекта типа Image (рисунка, грубо говоря). Второй - frame - Рисует эти полупрозрачные рисунки на канвасе в четырёх местах таким образом, что получается как бы полупрозрачная рамка.
import javax.microedition.lcdui.*;

public class 
Lib_ramka{
// ***********************************
 
public static int x,y,w,h;
 public static 
Image a1,a2,bg;
 public static 
Graphics g=M.G;
 public static 
Displayable d=FW.CD;
// ***********************************
 
public static void init(){
   
x=(d.getWidth()*6)/100;
   
w=d.getWidth()-x*2;
   
y=(d.getHeight()-(w*86)/100)/2;
   if(
y<x)y=x;
   
h=d.getHeight()-y*2;
   
int p[]=null;
   
p=new int[x*d.getHeight()];
   for(
int i=0;i<p.length;i++)
   
p[i]=0xbb000000;
   
a1=Image.createRGBImage(p,x,d.getHeight(),true);
   
p=new int[w*y];
   for(
int i=0;i<p.length;i++)
   
p[i]=0xbb000000;
   
a2=Image.createRGBImage(p,w,y,true);
 }
// ***********************************
 
public static void frame(){
   
g.drawImage(a1,0,0,g.LEFT|g.TOP);
   
g.drawImage(a1,d.getWidth(),0,g.RIGHT|g.TOP);
   
g.drawImage(a2,x,0,g.LEFT|g.TOP);
   
g.drawImage(a2,x,d.getHeight(),g.LEFT|g.BOTTOM);
 }
// ***********************************

В эмуляторе работает. На моём сименсе С75 - нет. Кто подскажет, в чём дело? Ничего не зависает, просто рамочка не рисуется, мидлет дальше без неё выполняется...

Последний раз редактировалось Phantom, 27.07.2008 в 01:01.
(Offline)
 
Ответить с цитированием