|
Основной форум Сюда все проблемы связанные с программированием. |
08.09.2007, 12:56
|
#1
|
AnyKey`щик
Регистрация: 23.08.2007
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Отрисовка
День добрый!
Такой вопрос:
program test;
var
a:integer;
begin
for a:=1 to 10 do
begin
drawText(''+a, 0, 0);
repaint;
delay(1000);
end;
end.
Если запустить мидлет, то текст (цифры) на дисплее будет накладываться друг на дружку...
Что можно сделать, что бы этого наложения не было?
|
(Offline)
|
|
08.09.2007, 13:05
|
#2
|
ПроЭктировщик
Регистрация: 04.09.2005
Сообщений: 139
Написано одно полезное сообщение
|
Re: Отрисовка
Если запустить мидлет, то текст (цифры) на дисплее будет накладываться друг на дружку...
Что можно сделать, что бы этого наложения не было?
|
для этого можно для разных букв указывать разные координаты в команде drawText
|
(Offline)
|
|
08.09.2007, 14:01
|
#3
|
AnyKey`щик
Регистрация: 23.08.2007
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Отрисовка
А если нужно отрисовывать текст именно в одной и той же области?
Как можно очистить экран перед повторной отрисовкой?
|
(Offline)
|
|
08.09.2007, 15:32
|
#4
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Re: Отрисовка
Можно так:
program test;
var
a:integer;
x:integer;
begin
for a:=1 to 10 do
begin
x:=x+getstringwidth(integertostring(a))+2;
drawText(''+a,x, 0);
repaint;
delay(1000);
end;
end.
|
(Offline)
|
|
08.09.2007, 18:20
|
#5
|
AnyKey`щик
Регистрация: 23.08.2007
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Отрисовка
Не, ребят, вы меня не понимаете...
Гляньте на мой пример. Мне нужно, чтобы вместо "1", появиласть "2", затем "3" и т.д. на одном и том же месте.
Т.е. перед отрисовкой следующего числа нужно очистить дисплей.
Как можно вызвать "местный CLS", т.е. просто очистить экран?
|
(Offline)
|
|
08.09.2007, 19:13
|
#6
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: Отрисовка
Перед выводом а, пиши в ту позицию (0,0) пробел.
|
(Offline)
|
|
08.09.2007, 19:45
|
#7
|
AnyKey`щик
Регистрация: 23.08.2007
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Отрисовка
Пишу пробел - ноль эффекта, почему-то...
program test;
var
a:integer;
begin
for a:=1 to 10 do
begin
drawText(' ',0, 0);
drawText(''+a,0, 0);
repaint;
delay(1000);
end;
end.
В чём проблема может быть?
|
(Offline)
|
|
08.09.2007, 19:57
|
#8
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: Отрисовка
drawText(' ',0, 0);
repaint;
drawText(''+a,0, 0);
repaint;
может так? а вообще не знаю я МП...
|
(Offline)
|
|
08.09.2007, 19:58
|
#9
|
|
Re: Отрисовка
Чисто алгоритмически твоя проблема решается изначальной закраской фоном участка, на котором выводится текст. Ммм... в MidletPascal'е есть процедуры для отрисовки закрашенных прямоугольников ?
|
|
|
08.09.2007, 19:59
|
#10
|
AnyKey`щик
Регистрация: 23.08.2007
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Отрисовка
В общем, вот чего изобрёл:
program test;
var
a:integer;
begin
for a:=1 to 10 do
begin
setColor(0,0,0);
drawText(''+a,0, 0);
repaint;
delay(1000);
{MyRepaint}
setColor(255,255,255);
fillRect(0,0,getWidth,getHeight);
end;
end.
Всем спасибо за внимание!
|
(Offline)
|
|
08.09.2007, 20:02
|
#11
|
Мастер
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений (для 252 пользователей)
|
Re: Отрисовка
Мдяааа, жёсткий язык, этот мидлет паскаль)))
|
(Offline)
|
|
08.09.2007, 20:05
|
#12
|
|
Re: Отрисовка
Кстати, а что это за дикая конструкция такая) ?
|
|
|
08.09.2007, 20:20
|
#13
|
AnyKey`щик
Регистрация: 23.08.2007
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Re: Отрисовка
Тоже моё изобретение...
У меня практически никакого опыта в программировании, поэтому не знаю как вывести на дисплей Integer.
Если оставить только: - MP ругается: "error on parameter 1".
Может тогда разъясните, как вывести на дисплей число "без извращений"?
|
(Offline)
|
|
08.09.2007, 20:25
|
#14
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Re: Отрисовка
Сообщение от Chrono Syndrome
Кстати, а что это за дикая конструкция такая) ?
|
Если написать просто "a" то получится ошибка с типом параметра, а если написать так, то он склеит '' и "a", автоматически преобразовав "a" в строку. Так же, как writeln(a) в TP.
Может тогда разъясните, как вывести на дисплей число "без извращений"?
|
Без извращений не получится .
Либо
либо
drawText(Integertostring(a),0, 0);
Второй метод-наиболее стандартный.
|
(Offline)
|
|
08.09.2007, 21:08
|
#15
|
|
Re: Отрисовка
Если написать просто "a" то получится ошибка с типом параметра, а если написать так, то он склеит '' и "a", автоматически преобразовав "a" в строку.
|
КрЫсота... (C)
Не, ну создатели этого Мидлета уж определились бы как-нибудь: у ихнего детища строгая типизация или нет) ?
|
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 17:19.
|