Показать сообщение отдельно
Старый 25.12.2008, 20:53   #5
abcdef
Знающий
 
Регистрация: 16.09.2008
Сообщений: 299
Написано 71 полезных сообщений
(для 123 пользователей)
Ответ: Тест англ. языка.

Примерно так (на java было бы по-красивше, но можно делать и графическом режиме):
var
  m : array[0..100] of string;
  i,n,max : integer;
  get : boolean;
  s : string;
  leftCmd,rightCmd,getCmd,okCmd,exitCmd,cmd : command;
  id_txt : integer;
begin
  showForm;
  leftCmd := createCommand('left', CM_SCREEN, 1);
  rightCmd := createCommand('right', CM_SCREEN, 2);
  getCmd := createCommand('get', CM_OK, 1);
  exitCmd := createCommand('exit', CM_EXIT, 1);
  okCmd := createCommand('ok', CM_OK, 1);
  addCommand(leftCmd);
  addCommand(rightCmd);
  addCommand(getCmd);
  addCommand(exitCmd);
  addCommand(okCmd);
  repeat
    //загрузка текста
    m[0]:='RUS: программирование от arT (c). e-mail: [email protected]'+chr(10)+'________________'+chr(10)+'ENG: ';
    m[1]:='arT';
    m[2]:='programming';
    m[3]:='by';
    m[4]:='(c).';
    m[5]:='e-mail:';
    m[6]:='[email protected]';
    max:=6;
    n:=1;
    get:=false;
    //цикл выборки
    repeat
      s:='';
      for i:=0 to max do
        if (n<>i) then s:=s+m[i]+' '
          else
            if get then s:=s+'['+m[i]+'] '
              else s:=s+'{'+m[i]+'} ';
      id_txt := formAddString(s);
      repeat
        cmd := getClickedCommand;
      until (cmd<>emptyCommand);
      if (cmd=leftCmd) then
      begin
        if (n>1) then
        begin
          n:=n-1;
          if get then begin s:=m[n+1]; m[n+1]:=m[n]; m[n]:=s; end;
        end {else begin n:=max; if get then begin s:=m[1]; m[1]:=m[n]; m[n]:=s; end; end{};
      end
      else if (cmd=rightCmd) then
      begin
        if (n<max) then
        begin
          n:=n+1;
          if get then begin s:=m[n-1]; m[n-1]:=m[n]; m[n]:=s; end;
        end {else begin n:=1; if get then begin s:=m[max]; m[max]:=m[n]; m[n]:=s; end; end{};
      end
      else if (cmd=getCmd) then  get:=not get;
      formRemove(id_txt);
    until (cmd=exitCmd) or (cmd=okCmd);
  until (cmd=exitCmd);
end.
(Offline)
 
Ответить с цитированием