Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
ВнизТраблы с OpenDialog Найти похожие ветки
← →
Talla2k (2004-02-27 01:55) [0]Есть несколько программ, в которых я использую например компонент OpenDialog.
Соответственно,имеется несколько папок(в которых лежит файло) для работы с этими программами разбросанные по всему винту.Предположим,что программа "1" открыла файло по пути
"d:\Program Files\Borland\Delphi 5\Bin\Mini500\Tovar" и отработало с ним,далее запускаетя программа "2",
которой необходимо файло по пути "G:\Geko\real\Dept",но открывается предыдущий путь "d:\Program Files\Borland\Delphi 5\Bin\Mini500\Tovar".
Что и не устраивает!!!
Сделал следующее:
...
var reg:Tregistry;
begin
reg:=tregistry.create;
with reg do begin
openkey("software",true);
openkey("temp",true);
try
Readstring("default");
if valueexists("default") then Opendialog1.InitialDir:=Readstring("default");
except opendialog1.InitialDir:="C:\" end; end;
// т.е. считал откуда было предыдущее открытие файла и установил в Opendialog1.InitialDir
if opendialog1.Execute and fileexists(opendialog1.FileName)
then begin
reg:=tregistry.create;
with reg do begin
openkey("software",true);
openkey("temp",true);
writestring("default",ExtractfilePath(opendialog1.filename));
end; // сразу записал откуда открыл
... //далее нужная работа с файлом
end;
Но,даже при таком подходе программа"2" не имеющая вышеизложенного кода все равно открывает файл по пути программы "1",если
она(программа"1") работала.
И еще,сам удивился,но ,если имя программы"1" не Project1.exe,то все работает(т.е.обе программы открывают файлы с разных путей).ВОТ!
Может кто подскажет,как со всем этим бороться?
← →
Defunct (2004-02-27 02:29) [1]Что-то Вы там намутили с OpenDialog.InitDir
смотрите под отладкой чему равняется это поле перед вызовом OpenDialog.execute
Может "траблы" не с опен диалог, а с чтением рееста?
Ради интереса проверьте следующий код:
OpenDialog.InitDir := "C:\";
OpenDialog.Execute;
OpenDialog.InitDir := "D:\";
OpenDialog.Execure;
Ха!
> Но,даже при таком подходе программа"2" не имеющая вышеизложенного кода все равно открывает файл по пути программы "1",если
Ясное дело, будет открываться в текущем каталоге, а текущий каталог был установлен программой "1".
← →
Talla2k (2004-02-28 01:46) [2]Что значит текущий ?
Насколько я понимаю,в самом компоненте OpenDialog уже реализовано что-то?(то ли сохранение в реестр последнего пути)
← →
VMcL (2004-02-28 02:03) [3]>>сохранение в реестр последнего пути
Какой реестр в три часа ночи?!
OpenDialog1.InitialDir := "...";
OpenDialog1.FileName := "";
if OpenDialog1.Execute then
...
← →
Cobalt (2004-02-28 02:11) [4]Нет. В реестр точно ничего не сохраняет.
← →
Defunct (2004-02-28 03:08) [5]> Что значит текущий ?
Текущий это текущий. Вы когда-нибудь запускали cmd.exe или command.com? DOS видели?
OpenDialog по-умолчанию открывает текущий каталог для просмотра. Хотите открыть в другом каталоге - правильно укажите каталог в поле InitDir.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c