Конкретно данный код не проверял, но судя по тому, как реализован вызов процедур, могу сказать, что библиотека в принципе не обеспечивает многопоточности.
Попробуйте использовать
Lib_multithread
Я пробовал такой код, он немного изменен по сравнению с Вашим, но принцип вроде бы тот же:
program threadtest;
uses multithread;
procedure p1;//первый поток
begin
while true do
begin
setColor(0,0,0);
drawText('I',0,0);
repaint;
delay(500);
setColor(0,255,255);
fillRect(0,0,GetWidth,14);
repaint;
delay(500);
end;
end;
procedure p2;//второй поток
begin
while true do
begin
drawImage(loadImage('/icon.png'), 0, 100);
repaint;
delay(2000);
//showCanvas;
setColor(255,255,255);
fillRect(0,100,240,20);
repaint;
delay(2000);
end;
end;
begin
init(1);//Инициализируем первый поток
init(2);//Инициализируем второй поток
start(1);//Запускаем первый поток
start(2);//Запускаем второй поток
delay(1000000);//Здесь может быть все, что угодно, это основной поток мидлета.
end.
Для того, чтобы все сработало, нужно:
-обязательно добавить все 5 файлов T1.class...T5.class в ресурсы проекта, даже если потоков только два;
-имена процедур должны быть именно
p1, p2...p5 и никакие другие (можно описать только те процедуры, которые нужны).