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

Вниз

Установка начального каталога SelectDirectory   Найти похожие ветки 

 
Aleks   (2014-01-06 14:20) [0]

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


 
Aleks   (2014-01-06 15:50) [1]

Что нужно сделать  чтобы дерево папок развернулась до указанной папки.


 
SelectDirectory   (2014-01-06 16:26) [2]

var chosenDirectory : string;
...
SelectDirectory(chosenDirectory, [sdAllowCreate, sdPerformCreate, sdPrompt], 0);


 
Aleks   (2014-01-06 16:43) [3]

Делаю так.

if SelectDirectory("Выберите каталог","",a ) then
   Begin
       FileListBox1.Directory := a;
   End
 else
   ShowMessage("Выбор был отменен");

Открывается диологовое окно выбираю папку всё ок.
Хочется чтоб при открытии диол. окна разворачивался каталог до нужной папки, например (e:\stro\ggh\text).

  Делаю

  if SelectDirectory("Выберите каталог","e:\stro\ggh\text",a ) then
   Begin
       FileListBox1.Directory := a;
   End
 else
   ShowMessage("Выбор был отменен");

Открываеться то, что нужно, но я не могу выбрать другой диск, или папку которая находиться выше по каталогу . нпример (e:\stro)


 
SelectDirectory   (2014-01-06 18:28) [4]

SelectDirectory("Выберите каталог","e:\stro\ggh\text",<I><U>a ) then
расскажи нам, что такое "а"
похоже, что ты не разобрался в параметрах этой функции :(
вместо "Выберите каталог" должно находиться "e:\stro\ggh\text", далее опции, с которыми вызываешь функцию и т.д.
Для начала, поставь первым параметром "e:\stro\ggh\text", то есть так
if SelectDirectory("e:\stro\ggh\text",  [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
ну, и, расскажи, что получилось :)


 
Aleks   (2014-01-06 19:06) [5]

a ----  это переменная в которую функция заносит путь к папке выбранный пользователем

var
a:String;
begin
 if SelectDirectory("Выберите каталог","e:\stro\ggh\text",a ) then
   Begin
       FileListBox1.Directory := a;
   End
 else
   ShowMessage("Выбор был отменен");
end;

if SelectDirectory ("ТЕКСТ НА ОКНЕ","Установка начального каталога",РЕЗУЛЬТАТ ) then

if SelectDirectory("e:\stro\ggh\text",  [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then

Ни чего не получилось. ошибка компиляции.

0--- Это что?
"e:\stro\ggh\text"---- зачем это мне в названии окна?
[sdAllowCreate, sdPerformCreate, sdPrompt]---- об этом по подробние пожалуйста.

с примером если можно.


 
SelectDirectory   (2014-01-06 19:44) [6]

у тебя help есть?
примеры
if SelectDirectory("e:\stro\ggh\text",  [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
смотрел?
а так не пробовал?
if SelectDirectory("e:\stro\ggh\text",  [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then


 
SelectDirectory   (2014-01-06 19:45) [7]

у тебя help есть?
примеры
procedure TForm1.Button1Click(Sender: TObject);
var
 Dir: string;
begin
 Dir := "C:\MYDIR";
 if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
   Label1.Caption := Dir;
end;

смотрел?
а так не пробовал?
if SelectDirectory("e:\stro\ggh\text",  [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then


 
Aleks   (2014-01-06 20:08) [8]

Нет у меня helpa.
Пример не работает, ошибка
[DCC Error] Unit1.pas(53): E2003 Undeclared identifier: "SELDIRHELP"
[DCC Warning] Unit1.pas(83): W1019 For loop control variable must be simple local variable
[DCC Warning] Unit1.pas(109): W1019 For loop control variable must be simple local variable
[DCC Warning] Unit1.pas(117): W1019 For loop control variable must be simple local variable
[DCC Fatal Error] Project1.dpr(5): F2063 Could not compile used unit "Unit1.pas"

SELDIRHELP - что это (Нет у меня helpa)

[sdAllowCreate, sdPerformCreate, sdPrompt] ---  с этим делать

http://androschuk.blogspot.ru/2011/02/delphi.html --- тут читаю HELP
но того что мне нужно нет
Помогай сенсей


 
SelectDirectory   (2014-01-06 20:45) [9]

Неужели так сложно скомпилить строку
if SelectDirectory("e:\stro\ggh\text",  [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then, которую я дал
SelectDirectory   (06.01.14 18:28) [4]
про опции
[sdAllowCreate, sdPerformCreate, sdPrompt] напишу позже, а вообще в хелпе про них:
sdAllowCreate An edit box allows the user to type in the name of a directory that does not exist. This option does not create a directory: the application must read the name of the selected directory and create it if desired.
sdPerformCreate Used only in combination with sdAllowCreate. If the user enters a directory name that does not exist, the directory selection dialog creates it.
sdPrompt Used only in combination with sdAllowCreate. Displays a message box that informs the user when the entered directory does not exist and asks if the directory should be created. If the user chooses OK, the directory is created if the option set includes sdPerformCreate. If the option set does not include sdPerformCreate, the directory is not created: the application must read the directory name and create it.


 
Aleks   (2014-01-06 21:22) [10]

Это форум для начинающих Гранд Мастеров Delphi ? если так то прошу прощения я не туда попал.
И с английским у меня не важно:(

Помогай по проще, для просто начинающих, ок?
SelectDirectory   (06.01.14 18:28) [4] ---- Это вообще абракадабра какая то...
Тут картинки вылаживать можно?

тут фотки программы "Так есть" - нет возможности выбрать другой диск
                             "Так нужно"- уменя только в ручном режиме получается
http://img-fotki.yandex.ru/get/6730/...5e98fb3f_L.jpg http://img-fotki.yandex.ru/get/9797/...e262d98e_L.jpg


 
SelectDirectory   (2014-01-06 21:29) [11]

> Aleks   (06.01.14 21:22) [10]

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


 
Aleks   (2014-01-06 22:16) [12]

программа запоминает последнюю открытую окном диолог папку и при следующим старте открывает её же, (удобно) но не всегда нужена одина и та же папка. Проблемма не могу подняться вверх по дереву каталога например не могу выбрать диск Е или С
Вот Код

procedure TForm1.ToolButton5Click(Sender: TObject);
var
a,: String;
begin
     /// Этот путь вроде у всех есть кто на win7 (в оригинале переменная с memo1.text)
    if SelectDirectory("Выберите каталог","C:\Windows\System32\drivers",a ) then
       Begin
          FileListBox1.Directory := a;
          Memo1.Text:=a;
          Memo1.Lines.SaveToFile(Prog+"\История\Путь.txt");
       End
    else
      ShowMessage("Выбор был отменен");
end;
Проблемма в том что я не могу подняться в папку System32 или Windows и так далие.


 
Dennis I. Komarov ©   (2014-01-06 22:47) [13]


> Это форум для начинающих Гранд Мастеров Delphi ? если так
> то прошу прощения я не туда попал.
> И с английским у меня не важно:(
>

По сценарию тут ария Плохиша :)


 
Aleks   (2014-01-06 22:57) [14]

По сценарию тут ария Плохиша :)

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


 
Германн ©   (2014-01-06 23:28) [15]


> Проблемма в том что я не могу подняться в папку System32
> или Windows и так далие.

C SelectDirectory  и не получится ибо виндовая ShBrowseForFolder иначе работать и не умеет.


 
Aleks   (2014-01-06 23:50) [16]

Блин пол дня мне всякую умнятину скармливали........... а оно вот как.

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


 
Aleks   (2014-01-07 00:38) [17]

Вот нашёл на другой функции, но честно не чего не понял, подскажите. как тут установить начальный каталог.

uses ShellAPI, ShlObj;



procedure TForm1.Button1Click(Sender: TObject);

var

TitleName : string;

lpItemID : PItemIDList;

BrowseInfo : TBrowseInfo;

DisplayName : array[0..MAX_PATH] of char;

TempPath : array[0..MAX_PATH] of char;

begin

FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);

BrowseInfo.hwndOwner := Form1.Handle;

BrowseInfo.pszDisplayName := @DisplayName;

TitleName := "Please specify a directory";

BrowseInfo.lpszTitle := PChar(TitleName);

BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;

lpItemID := SHBrowseForFolder(BrowseInfo);

if lpItemId <> nil then begin

SHGetPathFromIDList(lpItemID, TempPath);

ShowMessage(TempPath);

GlobalFreePtr(lpItemID);

end;

end;


 
Плохиш ©   (2014-01-07 01:10) [18]


> Aleks   (06.01.14 20:08) [8]
> Нет у меня helpa.
>

Дальше читать не стал.


 
Aleks   (2014-01-07 01:30) [19]

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


 
Германн ©   (2014-01-07 01:49) [20]


> Вот нашёл на другой функции, но честно не чего не понял,
>  подскажите. как тут установить начальный каталог.
>

А на хрена? Я ж уже сказал про SHBrowseForFolder. То что ты привел это сильно урезанный код SelectDirectory.

Если уж сильно приспичило, то SelectDirectory существует в двух вариантах.
http://docwiki.embarcadero.com/Libraries/XE5/en/Vcl.FileCtrl.SelectDirectory
Первый (исконно Дельфийский) даст тебе возможность перемещаться по каталогам/дискам в любую сторону. Но увы он и выглядит антикварно и не локализован.

Если и это не устроит, рассмотри возможность использование диалога открытия/записи файла TOpen(Save)Dialog.
Если и это не годится, тогда ищи сторонние компоненты.

P.S. А на отвечающих перестань катить бочку. Тут не паперть, чтобы просить милостыню. И хелп надо иметь под руками и английский стараться учить.


 
Aleks   (2014-01-07 02:02) [21]

Спасибо за ответ. Всем пока, тема закрыта.

P.S. А я тут не милостынью прошу, а совета и помощи, и нехрена умничить, нечего сказать так пусть мимо проходят, от таких всё одно тодку ноль.


 
Германн ©   (2014-01-07 02:40) [22]


> P.S. А я тут не милостынью прошу, а совета и помощи

Увы, не похоже. Всё что я сказал есть в хелпе.



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

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

Наверх





Память: 0.51 MB
Время: 0.002 c
15-1404377324
xayam
2014-07-03 12:48
2015.02.08
Javascript to Java


2-1389046385
Signal
2014-01-07 02:13
2015.02.08
Есть ли реальный алгоритм вычисления прямоугольника


15-1404823067
Павиа
2014-07-08 16:37
2015.02.08
NetBIOS или вирус?


11-1257351348
Dy1
2009-11-04 19:15
2015.02.08
найти контрол


11-1255539904
RusSun
2009-10-14 21:05
2015.02.08
Выделение текста после события Тав





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