вопрос: шла речь о "сделайте перерисовку только этой области, а не всего дисплея."
repaint отрисовывает весь экран. как отрисовать именно нужный участок?
и еще: как правильнее объявить переменную tmpGlob в таком случае (т.е. результат функции не нужен). использовать глобальную или создать локальную? к глобальной доступ медленнее, локальная - память занимает......
procedure _light_on;
begin
if sett_light_sw then tmpGlob:= set_lights(0, 100);
end;
позвольте поделиться своими наблюдениями:
1) в отличии от делфей, в мидлет паскаль в условии проверяется всегда оба логических выражения, что может приводить к ошибкам:
program a;
const
len = 10;
var
i: integer;
ar: array[0..len] of integer;
begin
i:=0;
while (i<=len)and(ar[i]<>0) do i:=i+1;
// на последнем шаге, когда i=len+1, будет проверка несуществующего ar[11]
end;
2) в цикле
аргумент L вычисляется каждый раз. я имею ввиду L как выражение, например length(s), и если в цикле длина строки изменилась, число итераций также измениться.
3) для циклов быстрее всего выполняется условие
const
MAXLEN=10;
.....
while i<MAXLEN do ...
чуть медленнее
и почти в 2 раза медленнее
тестировал на своем телефоне, возможно на других будет по-другому.