0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 15

Файловый менеджер

22.05.2013, 19:44. Показов 2593. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу файловый менеджер, есть загвоздки:

1) Нужно организовать открытие файлов либо через кнопку, либо через FileListBox. (В открытии файла кнопкой ошибка, да и в открытии файла по двойному клику через FileListBox тоже не хочет работать, виной всему скорее всего неправильно написанный код )

2) Добавил изменение цвета для FileListBox в зависимости от *.exe *.txt и т.п. но он применяется только для активного окна, как сделать иначе?


Заранее спасибо!

А вот и сама работа: Beta.rar

Добавлено через 9 минут
C++
1
2
3
4
5
6
7
void __fastcall TForm2::FileListBox1Change(TObject *Sender)
{
 
AnsiString str = FileListBox1->Directory + "\\" + FileListBox1->Items->Strings[FileListBox1->ItemIndex];
ShellExecute(Handle, "open", str.c_str(), 0, 0, SW_SHOW);
 
  }
ругается на ShellExecute... что нужно подключить или изменить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.05.2013, 19:44
Ответы с готовыми решениями:

Файловый менеджер
Всем доброго времени суток. в общем нужна помощь, не за даром естественно. необходимо написать файловый менеджер. сама написанная программа...

Файловый менеджер
Помогите пожалуйста с домашним заданием. Задали сделать файловый менеджер вот картинка, которим он должен быть с виду. Нужно зделать...

Файловый менеджер builder c++
Доброе время суток. Задали сделать файловый менеджер в билдере, прогресс продвигается, но есть некоторые но : 1) Подскажите как связать...

12
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
22.05.2013, 19:48
При попытке загрузить саму работу: "Соединение сброшено". Выложите работу на форум.

Добавлено через 1 минуту
ругается на ShellExecute
текст ругательства процитируйте.
1
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 15
22.05.2013, 20:11  [ТС]
[BCC32 Error] Unit2.cpp(123): E2034 Cannot convert 'char const[5]' to 'const wchar_t *'
Full parser context
Unit2.cpp(119): parsing: void _fastcall TForm2::FileListBox1Change(TObject *)
[BCC32 Error] Unit2.cpp(123): E2342 Type mismatch in parameter 'lpOperation' (wanted 'const wchar_t *', got 'const char *')
Full parser context
Unit2.cpp(119): parsing: void _fastcall TForm2::FileListBox1Change(TObject *)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
22.05.2013, 20:13
C++
1
2
UnicodeString str = FileListBox1->Directory + "\\" + FileListBox1->Items->Strings[FileListBox1->ItemIndex];
ShellExecute(Handle, L"open", str.c_str(), 0, 0, SW_SHOW);
1
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 15
22.05.2013, 20:20  [ТС]
При запуске:
Project Project2.exe raised exception class EStringListError with message 'List index out of bounds (-1)'.
При нажатии Continue:
List index out of bounds (-1)
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
22.05.2013, 20:24
видимо, FileListBox1 у вас пуст
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 15
22.05.2013, 20:30  [ТС]
При запуске:
Project Project2.exe raised exception class EStringListError with message 'List index out of bounds (-1)'.
Это выдает во время компиляции ^, сама программа не запускается. FileListBox1 изначально не пустой - на нем отображается содержимое каталога в которой лежит программа.
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
22.05.2013, 20:33
пардон, не FileListBox1 , а StringList
0
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 15
22.05.2013, 20:36  [ТС]
Как еще можно осуществить открытие файла через FileListBox1 по двойному клику(чтобы программа открывалась стандартными приложениями, которые заданы системой). Или же так осуществить открытие с помощью Кнопки, вот только нужно считывать путь выбранного файла

WinExec?
CreadProcedure(вроде так как-то)?

Добавлено через 2 минуты
Можно подробнее о StringList (т.к. код изложенный выше был взят из интернет ресурсов)
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
22.05.2013, 20:37
Цитата Сообщение от evgewakan Посмотреть сообщение
При запуске:
Project Project2.exe raised exception class EStringListError with message 'List index out of bounds (-1)'.
При нажатии Continue:
List index out of bounds (-1)
И ничего странного, программа запускается, но FileListBox1 ЕЩЕ пуст.
Плохая идея помещать этот код в OnChange

C++
1
2
3
4
5
void __fastcall TForm1::FileListBox1DblClick(TObject *Sender)
{
UnicodeString str = FileListBox1->Directory + "\\" + FileListBox1->Items->Strings[FileListBox1->ItemIndex];
ShellExecute(Handle, L"open", str.c_str(), 0, 0, SW_SHOW);
}
1
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 15
22.05.2013, 20:43  [ТС]
В первом посте я прикрепил программу, может посмотрите и наставите на путь истинный, т.к. я сегодня уже более 6 часов сижу над этим

Добавлено через 5 минут
Цитата Сообщение от _Dimon_ Посмотреть сообщение
И ничего странного, программа запускается, но FileListBox1 ЕЩЕ пуст.
Плохая идея помещать этот код в OnChange

C++
1
2
3
4
5
void __fastcall TForm1::FileListBox1DblClick(TObject *Sender)
{
UnicodeString str = FileListBox1->Directory + "\\" + FileListBox1->Items->Strings[FileListBox1->ItemIndex];
ShellExecute(Handle, L"open", str.c_str(), 0, 0, SW_SHOW);
}
Спасибо!!!
Сделал так: убрал из OnChange и прикрутил все это к кнопке результат - открывается.
0
1408 / 572 / 127
Регистрация: 31.10.2011
Сообщений: 1,960
22.05.2013, 20:43
Путь истинный

В FileListBox в событии OnDblClick всавить код:
C++
1
2
AnsiString str = FileListBox1->Directory + "\\" + FileListBox1->Items->Strings[FileListBox1->ItemIndex];
ShellExecute(Handle, "open", str.c_str(), 0, 0, SW_SHOW);
1
0 / 0 / 0
Регистрация: 21.05.2013
Сообщений: 15
22.05.2013, 20:48  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void __fastcall TForm2::Button4Click(TObject *Sender)
{
for(int i=0; i<FileListBox1->Items->Count; i++){
      TRect R = FileListBox1->ItemRect(i);
      AnsiString sf = FileListBox1->Items->Strings[i];
      FileListBox1->Canvas->FillRect(R);
      if(sf.Pos(".bat")) FileListBox1->Canvas->Brush->Color = clYellow;
      else if(sf.Pos(".ini")) FileListBox1->Canvas->Brush->Color = clRed;
      else if(sf.Pos(".cpp")) FileListBox1->Canvas->Brush->Color = clBlue;
      else if(sf.Pos(".txt")) FileListBox1->Canvas->Brush->Color = clGreen;
      else FileListBox1->Canvas->Brush->Color = clWhite;
      FileListBox1->Canvas->Font->Color = clBlack;
      FileListBox1->Canvas->TextRect(R,R.Left+2,R.Top+2, sf);
     }
}

Код для раскраски в зависимости от расширения, оно работает только для активного окна, как сделать, чтобы все это работало во все программе( компонент FileListBox1 )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.05.2013, 20:48
Помогаю со студенческими работами здесь

Файловый менеджер, какие компоненты использовать
Доброго времени суток. Мне дали курсовую, написать файловый менеджер. Какие компоненты нужно использовать ? Заранее благодарю.

Что я делаю не так? файловый менеджер. Вывод: имя каталога, колич. катал-ов,имя файлов,колич. ф-ов,
Читал! Искал! Нашел! Повторил (максимально приближенно) - крашит. Выдает ошибку (скрин прилагается) Такая тема. Есть папка, например...

Файловый менеджер
Помогите пожалуйста!!! Мне нужен файловый менеджер на Win32... (не знаю как отоброзить содержимое директории..) заранее спасибо

файловый менеджер
помогите пожауйста!!! задание: написать программу файловый менеджер. желательно на с++. какой нужен компонент и что прописать чтобы...

Файловый менеджер
Есть файловый менеджер , не получается реализовать 2 оставшиеся кнопки . &quot;Копировать&quot; , &quot;Вставить&quot; . Подскажите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru