Помощь - Поиск - Пользователи - Календарь
Полная версия: Файл-менеджер на Паскале
Форум «Всё о Паскале» > Pascal, Object Pascal > Теоретические вопросы
TwD
Очень хочу написать его,но не идёт и всё тут.как мне сделать чтоб спиок файлов (findfirst) выходил на 3 стобца и работал курсор для начала?
volvo
TwD
Что-то типа Norton Commander?
SKVOZNJAK
Если под дос, то лучше для начала делать в псевдографическом режиме с использованием модуля CRT.
Бродяжник
Не хватайтесь сразу за все. Если не будете юзать Turbo Vision, то так или иначе понадобятся функции поддержки интерфейса. Вот с них и начните. Например, начните с функций меню.
1. Продумайте, как хранить структуру меню в памяти.
2. Напишите функции инициализации меню и добавления новых пунктов.
3. Напишите функцию вывода меню на экран.
4. Напишите функцию организации выбора (обработка клавиш и перемещение выделения по пунктам меню).
5. Добейтесь того, чтобы можно было создавать меню пунктов эдак из 40, а потом выводить его в окне из 10 строк с возможностью прокрутки.
6. Доработайте эти функции так, чтобы вместо меню они работали со списком файлов.
7. Если еще не устали, можете побороться с выводом меню/списков файлов в три столбца...
8. ...а лучше начните писать основные функции своего "Коммандера". Три столбца никуда не денутся; не в них счастье.
Будут конкретные вопросы - обращайтесь, лучше сразу со своими вариантами решения.
TwD
пока я меню не интересуюсь
как сделать чтоб курсор бегал

какие модули?Crt,Dos ?
надо ли использовать ООП
volvo
Цитата
пока я меню не интересуюсь

и
Цитата
как сделать чтоб курсор бегал

blink.gif Противоречие... Зачем бегать курсору, если нет меню?
Altair
У меня на диске валяется файл менеджер в стиле нортона, написанные на фри паскале, с исходниками...

под ДОС...
Бродяжник
TwD
И все же я бы предложил отталкиваться от чего-то наподобие следующего:
Код
uses crt;
const a: array[1..4] of string=(' Open    ',' Save    ',' Save as ',' Exit    ');
var y: integer;
   klav: char;
begin

 clrscr;

 textcolor(14);
 textbackground(1);

 for y:=1 to 4 do
     begin
       gotoxy(1,y);
       write(a[y]);
     end;

 y:=1;

 repeat

   textcolor(0);
   textbackground(7);

   gotoxy(1,y);
   write(a[y]);


   klav := readkey;

   if klav = #0 then klav := readkey;

   case klav of
       #72: begin
              if y>1 then begin
                            textcolor(14);
                            textbackground(1);

                            gotoxy(1,y);
                            write(a[y]);

                            y:=y-1;
                          end;
            end;
       #80: begin
              if y<4 then begin
                            textcolor(14);
                            textbackground(1);

                            gotoxy(1,y);
                            write(a[y]);

                            y:=y+1;
                          end;
            end;
   end;
 until klav=#27;

end.

P.S. Надо еще стандартный курсор убрать с глаз долой, но я сейчас не вспомню, как.
SKVOZNJAK
Скорее всего имелось в виду простейшее меню.
В качестве курсора можно использовать цветной квадрадик приводимый в движение от клавы.
Ооп по желанию smile.gif Для этих модулей оно не обязательно.
volvo
Бродяжник
Цитата
Надо еще стандартный курсор убрать с глаз долой, но я сейчас не вспомню, как.

А ФАК на что?
TwD
Цитата(volvo @ 10.12.04 17:01)
и

blink.gif Противоречие... Зачем бегать курсору, если нет меню?

бегать по списку фалов
а меню в стиле волкова не надо
Бродяжник
volvo
Да я, в общем-то, умею прятать ДОСовский курсор. У меня в загашника лежит такая маленькая процедурка, просто лень было ея искать. rolleyes.gif
TwD
Цитата(Бродяжник @ 10.12.04 16:19)
Не хватайтесь сразу за все. Если не будете юзать Turbo Vision, то так или иначе понадобятся функции поддержки интерфейса. Вот с них и начните. Например, начните с функций меню.
1. Продумайте, как хранить структуру меню в памяти.
2. Напишите функции инициализации меню и добавления новых пунктов.
3. Напишите функцию вывода меню на экран.
4. Напишите функцию организации выбора (обработка клавиш и перемещение выделения по пунктам меню).
5. Добейтесь того, чтобы можно было создавать меню пунктов эдак из 40, а потом выводить его в окне из 10 строк с возможностью прокрутки.
6. Доработайте эти функции так, чтобы вместо меню они работали со списком файлов.
7. Если еще не устали, можете побороться с выводом меню/списков файлов в три столбца...
8. ...а лучше начните писать основные функции своего "Коммандера". Три столбца никуда не денутся; не в них счастье.
Будут конкретные вопросы - обращайтесь, лучше сразу со своими вариантами решения.

я новичок,можно поподробней плиз rolleyes.gif
Digitalator
ну-ну, как всегда
Цитата("Newbie")
Я хочу написать виндоус, но что-то не получается, ПАМАГИТЕ ПЛИЗ!! rolleyes.gif

Цитата("Cool Hacker")
Попробуйте почитать книжки по Си :p5:

Цитата("Newbie")
А что это такое?  :p2:
suriv
lol.gif lol.gif lol.gif lol.gif lol.gif :p5:

lol

Я хочу написать виндоус но я не знаю что такое си
Может он хааател написать ОС на бейсике или паскале :D
GoodWind
Цитата
Может он хааател написать ОС на бейсике или паскале :D

а чего в этом смешного ? blink.gif
первые 3 версии горячо любимого Глюкавого были написаны на Пасе, если не ошибаюсь....
suriv
Нифига себе blink.gif
Dark
Были, были

До сих пор в винде есть кое что от паскаля...
TwD
киньте исходников коли не жалко
Флогримм
Цитата
До сих пор в винде есть кое что от паскаля...


все то, что не глючит ;)
Бродяжник
...исходников-то не жалко. Вот, к примеру, я когда-то пытался написать свой Турбо Вижн. Вышло не совсем то, что хотелось, зато опыт был приобретен. :P Вот, кидаю его часть, ответственную за меню. Конечно, использовать это в чистом виде для файл-менеджера нельзя, но, может быть, это подаст идеи...
TwD
что влом искод кинуть??
volvo
TwD
Цитата
что влом искод кинуть??

А что по-Вашему находится в предыдущем посте? А потом, если Вам изначально нужны были не советы, а исходники, то Вы ошиблись разделом. Правила гласят:
Цитата
6. Самое главное - это раздел теоретический, т.е. никаких задач и программ - для этого есть отдельный раздел!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.