Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.08.2013, 13:46   #1
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию Как сбросить InitialDir в OpenDialog

Всем привет!
У меня есть 2 кнопки, и один OpenDialog.
Кнопка1 открывает openDialog, с InitialDir := 'sound\slovar';
Кнопка2 открывает OpenDialog, c InitialDir := 'sound\shablon';
Но если я нажимаю например на кнопку1, и выбираю файл, то после этого, нажав на кнопку2 будет открываться не programm\shablon , а programm\sound. И на оборот...
Уже столько перепробовал, но ничего не помогло, вот код:

Кнопка1
Код:
begin
OpenDialog1.InitialDir:='sound\slovar';
OpenDialog1.Execute;
OpenDialog1.FileName;
BASS_StreamFree(Channel);
Channel := Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0);
Label10.Caption := OpenDialog1.FileName;
end;
Кнопка2
Код:
begin
OpenDialog1.InitialDir:='sound\shablon';
OpenDialog1.Execute;
OpenDialog1.FileName;
BASS_StreamFree(Channel);
Channel := Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0);
Label10.Caption := OpenDialog1.FileName;
end;
From Stilet: Код, который не является кодом PHP попрошу не выделять этим тегом. Выделяй его тегом по кнопке #

Последний раз редактировалось TUberwer; 18.08.2013 в 14:08.
TUberwer вне форума Ответить с цитированием
Старый 18.08.2013, 13:56   #2
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Во первых, прописывай полные пути.
Во вторых, советую обвести в условие метод Execute у диалога.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 18.08.2013, 14:10   #3
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

Сделал так, проблема не решилась

Кнопка1
Код:
var
dir : String;
begin
GetDir(0, dir);
OpenDialog1.InitialDir:= dir + '\sound\slovar';
if OpenDialog1.Execute then
begin
OpenDialog1.FileName;
BASS_StreamFree(Channel);
Channel := Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0);
Label10.Caption := OpenDialog1.FileName;
end;
Кнопка2
Код:
var
dir : String;
begin
GetDir(0, dir);
OpenDialog1.InitialDir:= dir + '\sound\shablon';
if OpenDialog1.Execute then
begin
OpenDialog1.FileName;
BASS_StreamFree(Channel);
Channel := Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0);
Label10.Caption := OpenDialog1.FileName;
end;
TUberwer вне форума Ответить с цитированием
Старый 18.08.2013, 14:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
советую обвести в условие метод Execute у диалога.
Поясню:
Код:
begin
OpenDialog1.InitialDir:='sound\slovar';
if OpenDialog1.Execute then begin
 BASS_StreamFree(Channel);
 Channel := Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0);
 Label10.Caption := OpenDialog1.FileName;
end;
end;
Опендиалог запоминает последний путь, и если не ошибаюсь - это зависит от системы а не от самого компонента.
Думаю нужно поступить так:
Код:
OpenDialog1.InitialDir:=ExtractFilePath(ParamStr(0))+'sound\slovar';
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.08.2013, 15:08   #5
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

не помогло.. если я выберу в кнопке1 любой файл, то при нажатии на кнопку 2, будет открываться директория, которая должна открываться в кнопке1
TUberwer вне форума Ответить с цитированием
Старый 18.08.2013, 15:45   #6
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от TUberwer Посмотреть сообщение
не помогло.. если я выберу в кнопке1 любой файл, то при нажатии на кнопку 2, будет открываться директория, которая должна открываться в кнопке1
так пресвой в начальную деректорию, то что надо для второй.

Короче вот:
Код:
begin
OpenDialog1.InitialDir:=ExtractFilePath(ParamStr(0))+ '\sound\shablon';
if OpenDialog1.Execute=false then exit;
OpenDialog1.FileName;
BASS_StreamFree(Channel);
Channel := Bass_streamCreateFile(false, PChar(OpenDialog1.FileName),0,0,0);
Label10.Caption := OpenDialog1.FileName;
end;
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.

Последний раз редактировалось Stilet; 18.08.2013 в 16:27.
саша40 вне форума Ответить с цитированием
Старый 18.08.2013, 16:00   #7
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

теперь открывается постоянно slovar, я уже поставил и на ту и на ту кнопку \sound\shablon , но открывается \sound\slovar

так, я уже подумал... можно и на 2 разных OpenDialog, сделал для одной кнопки один OpenDialog, для второй - второй OpenDialog.
Открывается по кнопкам все правильно...
НО
Например: Нажимаю я на кнопку1, открывается OpenDialog1(проверяю по title диалогов) с правильным путем, закрываю диалог(не выбирая файла), потом нажимаю на кнопку2, открывается OpenDialog2, и путь тоже правильный.
Но если я например жму на кнопку1, открывается диалог1, выбираю файл, потом нажимаю на кнопку2, открывается диалог2(смотрю по тайтлу), но путь в диалоге2 уже такой же, как и в диалоге1.
Или наоборот:

я например жму на кнопку2, открывается диалог2, выбираю файл, потом нажимаю на кнопку1, открывается диалог1(смотрю по тайтлу), но путь в диалоге1 уже такой же, как и в диалоге2.

Почему так??

Последний раз редактировалось Stilet; 18.08.2013 в 16:30.
TUberwer вне форума Ответить с цитированием
Старый 18.08.2013, 18:47   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

в Options добавить ofNoChangeDir - тогда не будет меняться текущий каталог после віборки в диалоге
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.08.2013, 19:00   #9
TUberwer
Форумчанин
 
Регистрация: 01.07.2013
Сообщений: 221
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
в Options добавить ofNoChangeDir - тогда не будет меняться текущий каталог после віборки в диалоге
СПАСИБО ОГРОООМНОЕ! Весь день сижу и не могу сделать, а это так просто!
TUberwer вне форума Ответить с цитированием
Старый 18.08.2013, 19:15   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Весь день сижу и не могу сделать, а это так просто!
Хватило бы 10 минут, чтобы в хелпе почитать описание свойств компонента. Не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сбросить драйверы в первоначальное состояние? calypso Windows 1 12.03.2013 14:32
Как сбросить таймер? fezilk25 Общие вопросы Delphi 1 16.11.2010 17:54
OpenDialog.InitialDir (design time) mutabor Общие вопросы Delphi 5 05.08.2010 16:04
Как сбросить иконку приложения в дефолт? Вавел из ГМТУ Общие вопросы Delphi 5 21.08.2009 22:52
Как сбросить зависание макроса valerij Microsoft Office Excel 3 26.12.2008 07:38