вот примерчик для любого разрешения
// progress sample for leonid
// (c) barsunduk
// 02.11.2011
program carload;
var
car: image;
i, scrW, scrH: integer;
// на входе состояние прогресса
// от 0 до scrW (ширина экрана)
procedure progress(x: integer);
var
w, h, y: integer;
s: string;
begin
w := GetImageWidth(car);
h := GetImageHeight(car);
y := scrH - h - h;
// очищается полоса с машинкой
SetColor(0, 0, 0);
FillRect(0, y, scrW, h);
// это можно удалить
// тут полоска зеленая рисуется с процентами
SetColor(0, 170, 0);
FillRect(0, y, x, h);
SetColor(240, 255, 240);
s := 'loading... ' + (100 * x / scrW) + '% ';
DrawText(s, x - GetStringWidth(s), y + h - GetStringHeight(s));
// для жирности
DrawText(s, 1 + x - GetStringWidth(s), y + h - GetStringHeight(s));
// рисуется машинка
DrawImage(car, x, y);
end;
begin
car := loadImage('/car.png');
scrW := GetWidth;
scrH := GetHeight;
SetColor(0, 0, 0);
FillRect(0, 0, scrW, scrH);
// цикл с шагом в 2 пиксела
for i := 0 to scrW / 2 do
begin
progress(i * 2);
repaint;
delay(40);
end;
// очищаем память от ненужной картинки
car := loadImage('');
delay(2000);
end.
в архиве тот же код