Вниз
Скачать: 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.978 c
1-43508
Tatyana
2004-02-28 23:14
2004.03.14
SaveDialog.FileName := OpenDialogFileName .....


1-43544
stewart
2004-02-27 19:02
2004.03.14
как написать приложения которая бы позвонила на одн телефон


1-43438
malkolinge
2004-03-01 13:07
2004.03.14
Указатель за витруальный метод предка.


3-43376
Floppy
2004-02-14 19:56
2004.03.14
Удаление записи (ей) в TADOTable


14-43834
Оля
2004-02-21 19:23
2004.03.14
Как активизировать microsoft word?




   Наверх