Показать сообщение отдельно
Старый 22.12.2008, 22:25   #14
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: перенос текста, вИходящего за предел экрана

Из исходников моего интерпретатора на языке MIDletPascal
s - строка
x,y - текущее положение курсора на экране
w,h - ширина высота области вывода
x0,y0 - стартовая позиция на экране

  while (x+getStringWidth(s)>=x0+w) do
  begin
    n:=length(s);
    if n>1 then
    begin
      repeat n:=n-1; until (getStringWidth(copy(s,0,n))<x0+w) or (n<=0);
      drawText(copy(s,0,n),x,y);
      s:=copy(s,n,length(s));
    end;
    n:=getStringHeight('ABCDEF');
    y:=y+n;
    if (y+n>=y0+h) then y:=y0;
    x:=x0;
  end;
  drawText(s,x,y);
  x:=x+getStringWidth(s);
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
temned (23.12.2008)