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

Вниз

open/save dialogs   Найти похожие ветки 

 
alexey1   (2002-02-13 04:43) [0]

Здравствуйте всем! у меня проблама такого характера. не могу сделать один прог уже месяца два. вроде бы задача звучит просто, а вот сделать не могу и всё. значит так: имеются стандартные диалоговые окна открытия или сохранения файлов и мне средствами win api нужно занести в менюшку путь по которому в данный момент отображаются папки и файлы, а также по выбору из этого меню заставить этоже диалоговое окно сменить путь отображения папок и файлов (что-то типа избранных путей, которые пользователь себе выбирает, что бы потом не ползать по всему диалоговому окну, ища нужный путь). что я тоько не делал и с помощью шпиона сообщений spy++ отслеживал сообщения, которые происходят при переключении между папками и читал различные хелпы и MSDN,смотрел исходники dialogs.pas,dlgs.pas и многое многое другое, а вот на вашей конференции к сожалению пока ответов на свои вопросы не получал.
накопал кучу функций и сообщений. голова уже кругом идет от всего этого. ну вот к примеру стандартные сообшения диалогов:
cdm_getfolderpath...... , мноое пробую, но неработает. есть такие проги как access folders, qfolders - вот что-то типа такого же мне и надо.
Ребят!!!! может кто-нибудь подумает по этой теме или может у кого-нибудь уже что-нибудь подобное есть?????

Если никто ничего по данной тематике не знает, хоть, привет передайте что ли!!!!!!!!!

Буду очень признателен всем за помощь!!!!!!!!!!!!!!


 
Shaman_Naydak   (2002-02-13 10:19) [1]

SaveDialog1.InitialDir:="C:\"
например, не пробовал делать? :))
или ты менюшку хочешь прямо в стандартный диалог вставить?


 
McSimm   (2002-02-13 10:36) [2]

>alexey1
Привет :)

Внимательно перечитал несколько раз. Но суть проблемы не смог поймать.
Событие OnFolderChange ничем не поможет?
Или диалоги показываются без использования компонент. Тогда callback функции можно использовать для отлова момента изменения.

И где меню, действительно. В диалоге? Доступно одновременно с диалогом?


 
Лёша   (2002-02-13 23:14) [3]

Можно добавить какой-нибудь элемент управления на стандартный диалог и естественно методы к элементу.
В приведенном примере я беру TOpenPictureDialog (чтобы долго не возиться), прячу все ненужное, добавляю кнопку и событие на нее - NavigateClick.

type
TOpenExtDialog = class(TOpenPictureDialog)
OpenB: TButton;
procedure NavigateClick(Sender: TObject); virtual;
constructor Create(AOwner: TComponent); override;
end;

implementation

{ TOpenExtDialog }

constructor TOpenExtDialog.Create(AOwner: TComponent);
var PicPan: TPanel;
begin
inherited Create(AOwner);
(FindComponent("PaintPanel") as TPanel).Visible:=False;
(FindComponent("PreviewButton") as TSpeedButton).Visible:=False;
(FindComponent("PictureLabel") as TLabel).Visible:=False;
PicPan:=(FindComponent("PicturePanel") as TPanel);

OpenB:=TButton.Create(PicPan);
with OpenB do
begin
SetBounds(77, 1, 45, 22);
Caption:="Open C:";
OnClick := NavigateClick;
Parent:=PicPan;
end;
end;

procedure TOpenExtDialog.NavigateClick(Sender: TObject);
begin
InitialDir:="C:";
//здесь перерисовка диалога
//или что-то типа следующих двух строк
DestroyWindow(GetParent(Handle));
Execute;
end;


Если брать конкретную задачу перехода по заданному пути, то она сводится к решению одной из двух задач:
1) Перерисовать/перестроить диалог без его терминации.
2)А если его удалять, а потом запускать то в программе метод Execute использовать нельзя. Т.к. Execute в случае нажимания на OpenB будет возвращать False. Т.е. надо писать свой ExecuteExt например, который бы следил за всеми движениями и возвращал True если файл найден.

Хотелось бы услышать ответы, особенно от тех кто знает 1) вариант.


 
nikkie   (2002-02-14 09:38) [4]

а ты не пробовал просто вписать путь к интересующему тебя каталогу, а потом "нажать" кнопку open?


 
Лёша   (2002-02-15 00:42) [5]

А как я могу что-то вписать или на что-то нажать, когда мне не известны даже дескрипторы элементов диалога.
Можно добавлять компоненты к стандартному диалогу как это сделано в Delphi, например TOpenDialog --> TOpenPictureDialog. К сожалению, это единственный известный мне пример на Delphi (и не только на Delphi, а вообще). К томуже эти элементы могут только передавать данные главной программе, как в IE5 диалог "Сохранить как..." [Кодировка]. А мне надо, чтобы окно диалога менялось от моих элементов (как в Database Desktop диалог Open Table [Alias]).
Неужели для Delphi эта тема закрыта???

P.S. Может кто из на Сильников знает: как модифицировать стандартные диалоги?



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

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

Наверх





Память: 0.46 MB
Время: 0.005 c
3-57650
GreySerg
2002-03-28 19:49
2002.04.18
Как послать сообщение из одной формы в другую?


1-57672
lipskiy
2002-04-07 00:15
2002.04.18
TStringList не хочет грузится из TStringStream


1-57717
ruslan_as
2002-04-08 13:42
2002.04.18
прозрачная Label


1-57729
Evgenyk
2002-04-08 15:49
2002.04.18
Как убрать Rectangle в ComboBox?


1-57806
LMelkih
2002-04-06 20:09
2002.04.18
Переход на D6





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский