Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
7-43924
SkySlider
2003-12-22 13:14
2004.03.14
Обращение к принтеру


1-43641
Мыш
2004-03-02 11:43
2004.03.14
TChart, как задать нач. и конечное значение горизонтальной оси?


14-43866
Verg
2004-02-21 12:43
2004.03.14
Machine Head - это драйв!


7-43909
Rono
2003-12-23 21:38
2004.03.14
Как программно определить номер телефона.


1-43542
Дас Виндовс 45
2004-02-26 13:33
2004.03.14
Собственные курсоры и шрифты





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