помогите написать программу: на екран должна выводиться папка, в той папке кнопками вверх вниз можна выбрать файл(курсор представлен рамкой вокруг слова), нажимаем энтэр и в левой части экрана выводиться содержимое этого файла.
я уже немного сделал но хз как сделать чтоб прямоугольник(типа курсор) наведённый на файл открывал его???: 
Uses Crt,Graph,Dos;
label a;
Var Gd,Gm,x,y,w,w1,v,v1,n: Integer;
    q,qq,s:string;
    f:text;
    c: file of Byte;
    key:char;
DirInfo:searchRec;
Begin
 n:=1;
 Gd:=Detect;
 InitGraph(Gd, Gm, '');
 If GraphResult <> grOk Then Halt(1);
rectangle(1,1,639,479);
line(1,50,639,50);
line(320,1,320,479);
OUTTExtxy(3,25,'Папка:');
outtextxy(323,25,'Файл:');
begin
  FindFirst('c:\video\*.*', Directory, DirInfo);{поиск сначала, путь и имя файла, атpибут файла, файл}
 x:=10;y:=50;
 while DosError = 0 do{цикл, пpовеpка на ошибки}
 begin{начало блока}
  if pos('.',DirInfo.Name)=0 then
  begin
  gotoxy(x,y);Writeln('['+DirInfo.Name+']');{вывести имя файла на екpан}
  end
  else
   begin
    if (DirInfo.Name<>'.')and(DirInfo.Name<>'..')then
    begin
    Assign(c, 'c:\video\'+DirInfo.Name);{инициализация файла}
    {$i-}
    Reset(c);{откpыть файл}
    {$i+}
    if ioresult<>0 then begin end else
    begin
    outtextxy(x,y,dirinfo.name);Writeln(DirInfo.Name);{вывести имя файла на екpан}
    close(c);
    end;
   end;
   end;
  FindNext(DirInfo);{пеpейти на следующий файл}
  y:=y+10;
  if y>480 then begin y:=50;x:=x+22;end;
  if x>320 then break;
 end; {конец блока}
 begin
  setcolor(15);
  w:=10;
  v:=160;
  w1:=160;
  v1:=180;
  rectangle(w,v,w1,v1);
  a:
  key:=readkey;
  case key of
  #80: begin
  if v>480 then  goto a;
  setcolor(black);
  rectangle(w,v,w1,v1);
  v:=v+30;
  w:=w;
  w1:=w1;
  v1:=v+30;
  setcolor(15);
  rectangle(w,v,w1,v1);
  end;
  #72: begin
  if v<50 then goto a;
  setcolor(black);
  rectangle(w,v,w1,v1);
  v:=v-30;
  w:=w;
  w1:=w1;
  v1:=v1-30;
  setcolor(15);
  rectangle(w,v,w1,v1);
  end;
  #27: begin halt; end;
  end;
 readln;
 goto a;
 end;
 end;
End.