Главная страница
    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
14-43880
Добрыня
2004-02-19 18:09
2004.03.14
лицензирование


14-43890
Думкин
2004-02-20 15:39
2004.03.14
С днем рождения! 20 февраля.


14-43771
Undert
2004-02-19 11:31
2004.03.14
Помогите с SQL запросом


4-43935
electhp
2004-01-08 08:22
2004.03.14
Как получить картинку из чужой памяти?


1-43577
TestUser
2004-02-27 15:25
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский