Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Виртуальный диск или ... [D6, Win95/98, WinME]


Glajik ©   (2003-08-29 04:18:00) 

Доброй ночи господа.

Вот пишу проект, частью которого должен быть телефонный справочник. Я не хочу создавать собственный интерфейс, а использовать окно проводника из под Окон. Справочник будет представлен ввиде папок с названием типа 322233 - Сидоров Николай Петрович. А внутри каждой папки будет в лежать дополнительная информация ввиде текстовых, звуковых, графических файлов. Этакая структура каталогов а-ля Linux. Мне кажется так будет удобнее юзать программу.

Интересуют следующие вопросы:
1. Как програмно открыть проводником каталог со справочником.
2. Как этот каталог сделать корневым- т.е. чтобы в эксплорере невозможно было подняться на уровень вверх, а в проводнике в древе отображалась только нужная мне структура каталогов.

Заранее благодарен.


Glajik   (2003-08-29 18:59:00) [1]

>AlexRush © (29.08.03 17:25)
Спасибо, но я нашёл выход полегче: на палитре компонентов я нашёл (во второй раз :]) вкладку "Samples" в которой есть такие компоненты как ShellTreeView и ShellListView. Кроме того, что из них я могу слепить окно Эксплорера, я могу задать путь к папке, которая будет корневой - это свойство Root: TRoot; Таким образом отпадает морока с виртуальным диском.

Может использование готовых компонентов кто-то считает ламерством, однако я:
- во-первых не кодер, и опыт работы с Делфями около полугода;
- во-вторых хороший художник не использует из принципа вместо кисти (а то и PhotoShop"a ;) скребок для наскальных рисунков.
Это я так ... в свою защиту.


AlexRush   (2003-08-29 17:25:00) [2]

2Glajik © (29.08.03 04:18)
Идея с организацией инфы в дерево каталогов - прикольная. Но реализация ее будет слишком громоздкой. Действительно, нужен виртуальный диск (а это не "Хелоу Вёрлд" на desktop"е писать :).
IMHO, Гораздо меньше времени уйдет на создание собственной проги, которая будет имитировать explorer.
ответы:
1.Где-то так:

procedure TForm1.Button1Click(Sender: TObject);
var pinf :PROCESS_INFORMATION;
sinf :STARTUPINFO;
cmdLine :string;
curDir :string;
fileName :string;
const
SHELL_NAME = "\EXPLORER.EXE";
PATH_TO_SHOW = "c:\Documents and Settings\";
begin
ZeroMemory(@sinf,sizeof(sinf));
sinf.cb:=sizeof(sinf);
sinf.wShowWindow:=SW_MAXIMIZE;
sinf.dwFlags:=STARTF_USESHOWWINDOW;

SetLength(fileName,255);
GetWindowsDirectoryA(@fileName[1],254);
lstrcatA(@fileName[1],SHELL_NAME);
SetLength(fileName,lstrlen(@fileName[1]));

if 0<>pos(#32,PATH_TO_SHOW)
then cmdLine:=AnsiQuotedStr(PATH_TO_SHOW,""")
else cmdLine:=PATH_TO_SHOW;
cmdLine:=fileName+#32+cmdLine+#0;
fileName:=fileName+#0;
if not
CreateProcessA(@fileName[1],
@cmdLine[1],
nil,
nil,
TRUE,
0,
nil,
PATH_TO_SHOW,
sinf,
pinf)
then SystemErrorMsg("CreateProcessA");
end;


2.Дак если всё-таки иртуальный диск, то сам и решишь, что в корне показывать (но, всё-таки ВД - не вариант), ну а если прога своя - тогда и вопрос отпадает...


Наверх

Титульная страница Поиск, карта сайта Написать письмо