Главная
Регистрация
Вход
Авторизироваться
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: ADMIN, Nextik  
Циклы в MIDletPascal 2
Nik_1712Дата: Вторник, 21.02.2012, 18:46 | Сообщение # 1
Группа: Удаленные





Привет Всем!
Пытаюсь учиться!
Как правильно организовать цикл? Можно ли в тело цикла вставить что нибудь кроме <delay(100);>, или это всё на что способны циклы в <MIDletPascal>? Или дело не в циклах?
Два дня пытался добиться обновления содержимого на дисплее, поместив <drawText> в тело цикла <until key = KE_STAR ;> в самых разных последовательностях wacko ,
в цикле с другим условием <until key<>ke_none;>, выдаёт хоть одно сообщение?
Подскажите, пожалуйста, please!

 
NextikДата: Среда, 22.02.2012, 20:01 | Сообщение # 2
Программист
Группа: Проверенные
Сообщений: 273
Награды: 0
Репутация: « 42 »
Статус: Offline
В MIDletPascal насколько помню есть три вида циклов. И насколько я понял, речь идет о While. Но это не важно сейчас. Существует так называемый "невидимый буфер" куда поступает информация о том что будет рисоваться на экране. Чтобы прорисовать из буфера всё это, нужно прописать после drawText, команду repaint. Не нужно делать так:
Code
drawText('Привет',0,0);
repaint;
drawtext('Пока',0,20);
repaint;

достаточно поставить команду прорисовки в самый конец всех остальных функций которые будут что-то отображать на дисплее устройства:
Code
drawText('Привет',0,0);
drawText('Пока',0,20);
repaint;

Тобишь это будет выглядить вот так:
Code
while Условие do
begin
DrawText('Привет',0,0);
DrawText('Пока',0,20);
repaint;
end;
 
Nik_1712Дата: Среда, 22.02.2012, 22:44 | Сообщение # 3
Группа: Удаленные





Привет!
Спасибо за хороший совет Программист!
Quote (Nextik)
В MIDletPascal насколько помню есть три вида циклов. И насколько я понял, речь идет о While. Но это не важно сейчас. Существует так называемый "невидимый буфер" куда поступает информация о том что будет рисоваться на экране. Чтобы прорисовать из буфера всё это, нужно прописать после drawText

Сегодня вечером всё заработало. Правда проблема была не в {repaint;}. Пока пальцы отдыхали от клавиш, мозг осенило! surprised Оказывается между Головой цикла и его Телом {begin...end;}НЕЛЬЗЯ ВСТАВЛЯТЬ НИЧЕГО!!!, кроме коментария, ни выражения, ни операторы, ничего. пришёл домой попробовал и... О! Эврика! работает. в {Visual Basic}, к которому я привык, голова и тело цикла нераздельны в принципе, поэтому я и обшибся. tongue
 
PassCallДата: Понедельник, 27.02.2012, 11:26 | Сообщение # 4
Знающий
Группа: Проверенные
Сообщений: 89
Награды: 0
Репутация: « 4 »
Статус: Offline
Ну дэ. Если сразу после головы цикла нету операторных скобок Begin/End, то выполняется только одна (следующая) команда

Пример адын.

For i:=1 to 10 do
begin
drawtext ('1',0,i*30);
drawimage (loadimage('/icon.png'),30,i*30);
end;
repaint;

Здесь выполняется рисование текста и иконок

Пример два
For i:=1 to 10 do
drawtext ('1',0,i*30);
drawimage (loadimage('/icon.png'),30,i*30);
repaint;

Здесь рисуется только текст.
 
  • Страница 1 из 1
  • 1
Поиск: