Вниз
Скачать: CL | DM;

Траблы с 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.016 c
1-43546
Тимохов
2004-01-23 13:14
2004.03.14
Я, похоже, первый!!! Вопрос про округление.


8-43695
Sceleton
2003-11-10 08:07
2004.03.14
Как дать имя хранителю экрана.


1-43663
Nekto
2004-03-01 21:58
2004.03.14
TComboBox


4-43971
andruxin
2003-12-29 17:34
2004.03.14
как задать название приложение в taskbare


1-43474
JIruaasgyy
2004-02-29 13:33
2004.03.14
Изменение ширины фиксированной колонки в StringGrid




   Наверх