Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.04.11;
Скачать: CL | DM;

Вниз

win api   Найти похожие ветки 

 
Aleksey1   (2002-01-31 01:16) [0]

Всем привет! Помогите пожалуйста разобраьься в такой ситуации.
Значит, имеется стандартный диалог открытия файла, мне нужно взять путь по которому в данный момент отображаются файлы и папки,
читая MSDN я узнал, что это может сделать сообщение диалога CDM_GETFOLDERPATH,
и я пишу в своей программе:
procedure TForm1.Button1Click(Sender: TObject);
var aa:hwnd;
Path: array[0..MAX_PATH] of Char;
begin
aa:=findwindow("#32770","Обзор");//где #32770-класс окна(диалог), обзор-caption окна
if (aa>0) then BEGIN // если такое окно открыто
затем этому диалогу посылаю сообщение:
sendmessage(aa,CDM_GETFOLDERPATH,sizeof(path),integer(@path));//где аа-найденное окно,sizeof(path)-размер буфера, integer(@path)-указатель на переменную, которая должна получить взятый путь
END;
И ничего из этого хорошего не выходит, либо переменная path ПУСТА, либо содержит какие-то каракули.
Я даже смотрел исходник диалогов DIALOGS.PAS и убедился что сообщение послано правильно.
А вот если поместить этот код в OnFolderChange компонента OpenDialog, то при перемещении между папками в path заносится текущий путь

Пример:
procedure TForm1.OpenDialog1FolderChange(Sender: TObject);
var
Path: array[0..MAX_PATH] of Char;
begin
alex:=findwindow(nil,"alexey"); // окно OpenDialog1, caption я поменял специально
SendMessage(alex, CDM_GETFOLDERPATH,SizeOf(Path), Integer(@Path)); // сообщение которое посылается открытому окну
memo1.lines.Add(StrPas(Path)); // добавление путей в поле Memo
end;


 
unikum ©   (2002-01-31 19:27) [1]

Пришли мне адрес на который можно тебе выслать исходник:
Мой адрес:Dmitry_Mar@rambler.ru


 
alexey1   (2002-02-05 03:08) [2]

буду очень рад если поможеш мне, мой адрес: alekssys@mail.ru


 
alexey1   (2002-02-05 03:13) [3]

буду очень рад если поможеш мне, мой адрес: alekssys@mail.ru


 
alexey1   (2002-02-13 04:07) [4]

привет unikum!!!! это alexey1, ты как то хотел выслать исходник по моему проблемному вопросу, буду очень благодарен, вот мой рабочий email- stainer@mail.ru



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

Текущий архив: 2002.04.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
1-32891
Aleksandr
2002-03-29 15:06
2002.04.11
Общеобразовательный вопрос: как делают форму


1-32742
dimonf
2002-03-29 09:39
2002.04.11
Народ, подскажите, как мне вывести на печать TConvas Panel-и?


1-32823
anod
2002-03-29 00:22
2002.04.11
Размер массива


1-32741
snoup
2002-03-29 23:25
2002.04.11
А как создать свой лог-файл который бы вёл журнал(когда/восколько


1-32842
guood
2002-03-28 17:46
2002.04.11
Рабочая директория приложения