Показать сообщение отдельно
Старый 25.07.2007, 12:42   #48
BASSON XVI
Нуждающийся
 
Регистрация: 04.06.2007
Сообщений: 87
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Помогите начинаешему ЯВеру!

Вот посмотрите код что то не работает!
program TxT_Edtihion2;
uses jsr75;
uses fsafm;
  var
     cmdNext : command;  
     cmdBack : command;  
     cmdQuit : command; 
PCmd,MCmd, clicked : command;

str : string;    // буфер
files: array[1..200] of string; // имена файлов, коичество файлов = размер массива 
filesID: array[1..200] of integer; // ID строк  
nameT : string; // текущая папка

num : integer; // щечики 
iID : integer;
nfile : string;
etc : string;

//--------------------------------------------------------------------------------------
{Мои булеаны!}
BultextBox, BultextOpen : boolean;
//---------------------------------------------------------------------------------------
{Указываем на процедуры которые идут после комманд на них}
procedure textBox; forward;
procedure textOpen; forward;

//---------------------------------------------------------------------------------------
procedure textOpen;

begin

cmdNext := CreateCommand('ок', CM_OK, 1); 
  cmdBack := CreateCommand('выход', CM_EXIT, 1); 

nameT:= ''; // начальная папка

 while (clicked <> cmdBack) do 
 begin 
 // очищаем команды
  removeCommand(cmdNext);
  removeCommand(cmdBack);
  Repaint; // обновление экрана



  if nameT = '' then // проверка на нахождение в корне
  begin


   str:=fsafm.list_roots(''); // чтение дисков
       num:= fsafm.num_disk(nameT); // определяем кол-во дисков



  end  
  else
  begin


   str:=fsafm.list_(nameT); // чтение папок
   num:= fsafm.num_dir(nameT); // определяем кол-во папок

  end;

 files [1]:= '...'; // добавляем первой строкой, выполняет функцию вверх



if str <> '' then  // проверка наличия файлов 
 begin



   for i:=2 to num + 1 do // очистка меню
   begin
   files [i]:= ''
   end;


  for i:=2 to num + 1 do
  begin


    files [i]:=  copy(str, 0, pos(str, '|') ); //заполнение массива именами 
    str:= copy(str, pos(str, '|') + 1 , length(str));

   if pos(str, '|') = -1 then  // проверка знака '|' в строке
   begin
   str:= '.';
   break;  
   end;

   end;
end;   




 // создаем меню



 showMenu(nameT, CH_IMPLICIT); 

 for i:= 1 to num + 1 do
 begin 
    if files[i] <> '' then 
    begin
    filesID [i] := menuAppendString(files[i]); // создаем строки
    end;
 end;


            // добавление команд
            AddCommand(cmdNext);
  AddCommand(cmdBack);
  Repaint; // обновление экрана



            repeat  // ждем нажатия на команду
  delay(100);
  clicked:= getClickedCommand; 
  until clicked <> emptyCommand; 

  if clicked <> cmdBack then 
  begin

  iID:= menuGetSelectedIndex + 1; // к ID выбранной строки прибавим 1, для удобства 

   if iID=1 then // если первая строка, переходим вверх
   begin
    if Length(nameT) <= 3 then // проверка на нахождение в корне
    begin
    nameT:='';
    end
    else
    begin

    for i:= 2 to length(nameT) do // команда вверх, вычисление предидущей папки
    begin

     if copy(nameT, length(nameT) - i, length(nameT) - i + 1 ) = '/' then
     begin

     nameT:= copy(nameT, 0, length(nameT) - i + 1  );
     break;

     end;
    end;
    end;
   end
   else
   begin


     if copy(files[iID], length(files[iID]) - 1, length(files[iID])) = '/' then nameT:= nameT + files[iID]; // если выбрана папка переходим в нее

     if length(files[iID]) >= 4 then
     begin

      if copy(files[iID], length(files[iID]) - 4, length(files[iID])) = '.gif' then debug('gif'); 
       if copy(files[iID], length(files[iID]) - 4, length(files[iID])) = '.txt' then 
       begin
        buf:= jsr75.read_file(nameT + files[iID]);
          textbox;
       end; 


     end;
   end;

  end;

 end;  
end;



//---------------------------------------------------------------------------------------

procedure textBox;
begin
   buf:= jsr75.read_file(fname);
   buf:= getTextBoxString;      

   showtextbox('Редактирование',buf,2000,tf_any);
   PCmd := createCommand('Сохранить', CM_SCREEN, 1); 
   MCmd := createCommand('Меню', CM_OK, 0);
   addCommand(PCmd);
   addCommand(MCmd);
   repaint;  
   repeat 
     clicked := getClickedCommand; 
   until clicked <> emptyCommand; 

   if clicked = MCmd then logMenu;
   if clicked = PCmd then logSave;

end;

//---------------------------------------------------------------------------------------
begin 
   textOpen;
end.
(Offline)
 
Ответить с цитированием