Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Вниз

Компонент OpenDialog   Найти похожие ветки 

 
Unknone ©   (2006-10-12 08:56) [0]

Всем доброго дня. Диалог после открытия выбранного файла при повторном вызове диалога не меняет путь.


 
Palladin ©   (2006-10-12 09:11) [1]

Это константация факта?

а если повод для беспокойства, то, телепатор подсказывает, ofNoChangeDir в True выставленно


 
Unknone ©   (2006-10-12 09:13) [2]

Мне надо чтобы путь менялся, ofNoChangeDir в True ставил, все равно путь при повторном вызове не меняется


 
Palladin ©   (2006-10-12 09:14) [3]

А зачем ты его в True ставил? Или ты не осознаешь что делаешь?


 
Unknone ©   (2006-10-12 09:16) [4]

Я его и в True ставил и в False, никакой разницы


 
Palladin ©   (2006-10-12 09:18) [5]

Не обманывай. False - работает как надо.

Hint: Если в диалоге нажать "Отмена"/Cancel, то путь не сменится.


 
Unknone ©   (2006-10-12 09:24) [6]

Я не знаю как у кого но у меня так...

OpenDialog1.InitialDir:=... указывается папка
OpenDialog1.Title:=... указывается заголовок

if OpenDialog1.Execute then
begin

 if  OpenDialog1.FileName<>"" then
 begin
  Mes:=MessageBox(handle,pchar("&#206;&#242;&#234;&#240;&#251;&#242;&#252; &#226;&#251;&#225;&#240;&#224;&#237;&#237;&#251;&#233; &#244;&#224;&#233;&#235;?"),pchar("&#204;&#207;&#207;"),36);

  if Mes=IDYES then
  begin
   path_to_base:=OpenDialog1.FileName;
   ShellExecute(handle,nil,pchar(path_to_base),"","",SW_SHOWNORMAL);
  end;

 end;

end;

Этот кусок вызывается несколько раз, при этом меняется путь.

При первом вызове нормально открывает папку, если не открывать файл, то при повторном вызове папка меняетется. Если файл открывается то при повтормом вызове диалога остается директория предидущего вызова.


 
Palladin ©   (2006-10-12 09:27) [7]


> OpenDialog1.InitialDir:=... указывается папка

ну и что ты хочешь? ты же все время жестко одну и туже начальную папку указываешь... с какой стати он (диалог) будет открываться в другой?


 
Unknone ©   (2006-10-12 09:31) [8]

Путь при каждом вызове меняется. Я же написал что если не открывать файл все нормально, глюки со сменой пути появляются после открытия файла.


 
Elen ©   (2006-10-12 09:56) [9]


> Unknone

попробуй замени OpenDialog1.InitialDir:=... указывается папка на  OpenDialog1.FileName:="c:\temp\*";


 
Elen ©   (2006-10-12 09:58) [10]


> Unknone

поправочка -  OpenDialog1.FileName:="c:\temp\*"; следует читать как
OpenDialog1.FileName:="указывается папка"+"\*";


 
Unknone ©   (2006-10-12 10:00) [11]

> Elen
Все равно директория не меняется


 
Elen ©   (2006-10-12 10:05) [12]


> Unknone

еще раз подробнее проблему : тебе нужно чтоб OpenDialog открывал всегда в одном и том же месте или что?


 
Unknone ©   (2006-10-12 10:09) [13]

В общем так... Есть несколько папок, в каждой из них лежат файлы. Есть несколько пунктов меню, которые вызывают диалог. Если просто вызывать диалог, не открывая файлов, директории менются правильно. Если открыть файл, то при следующем вызове диалога остается директория предидущего вызова.


 
Unknone ©   (2006-10-12 10:11) [14]

Директории меняются в зависимости от выбранного пункта меню.


 
Elen ©   (2006-10-12 10:13) [15]


> Unknone

протестируй это у меня работает :

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenDialog1.FileName:="c:\temp\*";
if OpenDialog1.Execute then
begin
if  OpenDialog1.FileName<>"" then
begin
 if MessageBox(handle,pchar("fdf"),pchar("sfsd"),36)=IDYES then
 begin
  ShellExecute(handle,nil,pchar(OpenDialog1.FileName),"","",SW_SHOWNORMAL);
 end;
 end;
end;

end;


Это все время открывает папку temp


 
Unknone ©   (2006-10-12 10:26) [16]

Мне надо чтобы все время открывались разные папки, в зависимости от выбранного пункта меню.


 
Elen ©   (2006-10-12 10:35) [17]


> Unknone

Составь меню из путей в капшинах и на каждый MenuItem задай обработчик :
procedure TForm1.c1Click(Sender: TObject);
begin

OpenDialog1.FileName:=tmenuitem(sender).Caption;
OpenDialog1.Execute
end;

В меню выставь autohotkeys:=mamanual и попробуй


 
Elen ©   (2006-10-12 10:37) [18]


> Unknone

Кстати путь должен венчаться символом *


 
Плохиш ©   (2006-10-12 11:02) [19]


> Unknone ©   (12.10.06 10:26) [16]

У тебя ошибка в 17й строке.


 
Игорь Шевченко ©   (2006-10-12 11:31) [20]

Elen ©   (12.10.06 10:13) [15]

У меня небольшая просьба - давай ты слегка матчасть подучишь, все-таки начинающих сразу пугать не надо.


 
Elen ©   (2006-10-12 11:39) [21]


> Игорь Шевченко

Чем пугать?


 
ЮЮ ©   (2006-10-12 11:45) [22]

OpenDialog1.InitialDir:=... указывается папка
Это убрать, или поставить в FormCreate лишт для первоначальной инициализации
OpenDialog1.Title:=... указывается заголовок

if OpenDialog1.Execute then
begin
OpenDialog1.InitialDir:= ExtractFileDir(OpenDialog1.FileName); // это добавить


 
Unknone ©   (2006-10-12 14:56) [23]

> ЮЮ
Не работает...


 
MsGuns ©   (2006-10-12 15:02) [24]

Засстрелиться..


 
Unknone ©   (2006-10-12 15:05) [25]

> MsGuns

Боюсь это тоже не поможет, более действенный совет есть?


 
Unknone ©   (2006-10-12 15:16) [26]

Директория не меняется только после того, как был открыт файл, если файл не открывать директория меняется нормально!


 
MsGuns ©   (2006-10-12 15:21) [27]

>Unknone ©   (12.10.06 15:05) [25]
>Боюсь это тоже не поможет, более действенный совет есть?

Есть. И он до неприличности банален. Внимательно прочитать справку для диалога и поискать ошибку в коде. Например в том месте, где узер все-таки удосужился выбрать файл.


 
Unknone ©   (2006-10-12 15:31) [28]


> Есть. И он до неприличности банален. Внимательно прочитать
> справку для диалога и поискать ошибку в коде. Например в
> том месте, где узер все-таки удосужился выбрать файл.

Я уже третий день смотрю, но так ничего и не усмотрел...


 
MsGuns ©   (2006-10-12 15:40) [29]

>Я уже третий день смотрю, но так ничего и не усмотрел...

Это бывает..


 
Elen ©   (2006-10-12 15:47) [30]


> MsGuns

Объясни почему при выполнении несколько раз этого кода

OpenDialog1.InitialDir :="c:\temp";
OpenDialog1.Execute

Директории открываются там где остановились последний раз?
Проведи ликБез


 
MsGuns ©   (2006-10-12 16:03) [31]

>Elen ©   (12.10.06 15:47) [30]
>Объясни почему при выполнении несколько раз этого кода ..
>Директории открываются там где остановились последний раз?
>Проведи ликБез

Ну хотя бы потому, что такого каталога просто нет, а юзер все-таки выбрал в предыдущем диалоге один из существующих.


 
Elen ©   (2006-10-12 16:10) [32]


> Ну хотя бы потому, что такого каталога просто нет

Такой каталог есть. И при первом запуске он с него стартует А при последующих нет и NoChangeDir не влияет. Только изменение каталога в FileName до Execute помогает.


 
Плохиш ©   (2006-10-12 16:36) [33]


> Только изменение каталога в FileName до Execute помогает.

Так и надо делать, об этом в справке по свойству FileName в последнем абзаце написано "Если Вы хотите установить стандартное имя, то присвойте значение свойству FileName." Если имя включает в себя путь, то соответственно эта папка будет открыта по умолчанию.


 
Elen ©   (2006-10-12 16:39) [34]


> Плохиш

Но ведь NoChangeDir должно влиять?


 
Плохиш ©   (2006-10-12 17:06) [35]


> Elen ©   (12.10.06 16:39) [34]
> Но ведь NoChangeDir должно влиять?

NoChangeDir к тому, что обсуждается в этой ветке, ни какого отношения не имеет.


 
Германн ©   (2006-10-12 22:56) [36]


> Unknone ©   (12.10.06 09:24) [6]
>
> Я не знаю как у кого но у меня так...
>
> OpenDialog1.InitialDir:=... указывается папка
> OpenDialog1.Title:=... указывается заголовок

Угу. А OpenDialog.FileName кто очищать будет? Пушкин? А этот FileName сидит полный путь к последнему открытому файлу. В том каталоге диалог и откроется. И чихать он при этом хотел на InitialDir.


 
ASoft   (2006-10-13 05:43) [37]

>Германн ©   (12.10.06 22:56) [36]
наконец-то, это прозвучало :)
давно пройденный этап....
всегда делал при обновлении каталога OpenDialog FileName:="", чтоб он не открывал каталог по ранее выбранному файлу


 
Unknone ©   (2006-10-13 07:33) [38]

> ASoft, Германн

> Угу. А OpenDialog.FileName кто очищать будет? Пушкин? А
> этот FileName сидит полный путь к последнему открытому файлу.
>  В том каталоге диалог и откроется. И чихать он при этом
> хотел на InitialDir.

Он чихал и на OpenDialog1.FileName:="", после открытия файла, путь программно не меняется...


 
Elen ©   (2006-10-13 08:30) [39]


> Unknone

Я ж тебе говорю - попробуй OpenDialog1.FileName:=< Путь_Нужная_директория >+"\*",. У меня это работает


 
ASoft   (2006-10-13 16:27) [40]

>Unknone ©   (13.10.06 07:33) [38]
вы хотите сказать, что
 OpenDialog1.FileName:="";
 OpenDialog1.InitialDir:=<новый каталог>
не работает?



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.10.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.065 c
3-1156870110
Telerion
2006-08-29 20:48
2006.10.29
Проблема с SQL запросом по датам. Сравнение дат. (paradox)


2-1160458972
Alina
2006-10-10 09:42
2006.10.29
Базы в Делфи.


9-1138023806
rts111
2006-01-23 16:43
2006.10.29
OpenGL. Как сделать прозрачность?


15-1160295530
ArtemESC
2006-10-08 12:18
2006.10.29
C C++


15-1160316660
@!!ex
2006-10-08 18:11
2006.10.29
Install Shield и реестр





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