Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.14;
Скачать: 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 вся ветка

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

Наверх




Память: 0.48 MB
Время: 0.019 c
14-43769
SergPas
2004-02-13 13:26
2004.03.14
Регистрация ПО


1-43427
Ivolg
2004-02-29 19:32
2004.03.14
Календарь


1-43424
Manulo
2004-03-02 17:36
2004.03.14
Указатель в текстовом файле


1-43444
SaYbr
2004-02-27 09:04
2004.03.14
CheckBox в Treeview ?


14-43844
MYSTERYO
2004-02-22 11:14
2004.03.14
кнВверх_Щелк или Delphi в гоблиновском переводе ;) Рекомендую