Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Вниз

Виртуальный диск или ...   Найти похожие ветки 

 
Glajik   (2003-08-29 04:18) [0]

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

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

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

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


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

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. Дак если всё-таки иртуальный диск, то сам и решишь, что в корне показывать (но, всё-таки ВД - не вариант), ну а если прога своя - тогда и вопрос отпадает...


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

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

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



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.11.03;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
3-8303
uu
2003-10-13 13:10
2003.11.03
обьединение таблиц


1-8445
Mistic
2003-10-21 20:59
2003.11.03
Командноая строка в своей проге?


6-8569
Novenkij
2003-09-07 01:52
2003.11.03
Качаем файл с инета


1-8435
SniZ
2003-10-21 22:04
2003.11.03
Про внедрение в программу


14-8643
MsGuns
2003-10-14 15:35
2003.11.03
Украинские сайты типа Job.ru





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский