Виндовс Екплорер је оно што користите у оперативном систему Виндовс да бисте претраживали датотеке и фасцикле. Можете створити сличну структуру са Делпхијем тако да се исти садржај попуни унутар корисничког интерфејса вашег програма.
У Делпхију се користе уобичајени дијалошки оквири за отворите и сачувајте датотеку у апликацији. Ако желите да користите прилагођене управљачке датотеке и дијалоге за прегледавање директорија, морате да се бавите компонентама Делпхи датотечног система.
Група палете Вин 3.1 ВЦЛ укључује неколико компоненти које вам омогућавају да направите свој властити прилагођени дијалог "Филе Опен" или "Филе Саве": ТФилеЛистБок, ТДирецториЛистБок, ТДривеЦомбоБок, и ТФилтерЦомбоБок.
Навигација датотекама
Компоненте датотечног система омогућавају нам да одаберемо погон, видимо хијерархијску структуру директорија на диску и видимо имена датотека у датом директорију. Све компоненте датотечног система дизајниране су за заједнички рад.
На пример, ваш код проверава шта је корисник урадио, рецимо, ДривеЦомбоБок, а затим те информације прослеђује у ДирецториЛистБок. Промјене у ДирецториЛистБок-у тада се преносе у ФилеЛистБок у којем корисник може одабрати потребне датотеке.
Дизајн дијалошког обрасца
Старт изнова Делпхи апликација и изаберите Вин 3.1 картицу Палета компонената. Затим урадите следеће:
- Ставите један облик ТФилеЛистБок, ТДирецториЛистБок, ТДривеЦомбоБок и ТФилтерЦомбоБок на форму, задржавајући сва њихова подразумевана имена
- Додајте један ТЕдит (назван „ФилеНамеЕдит“) и један ТЛабел (назовите га „ДирЛабел“).
- Укључите неколико ознака са натписима, као што су „Назив датотеке“, „Именик“, „Листа датотека типа“ и „Дискови“.
Да бисте приказали тренутно изабрану стазу као низ у натпису компоненти ДирЛабел, доделите име ознаке именику ДирецториЛистБок Власништво ДирЛабел.
Ако желите да изаберете име датотеке у ЕдитБок-у (ФилеНамеЕдит), морате доделити име уређивања објекта (ФилеНамеЕдит) ФилеЛистБок-у ФилеЕдит својство.
Више линија кода
Када на обрасцу имате све компоненте датотечног система, једноставно морате да поставите ДирецториЛистБок. Својство погона и ФилеЛистБок. Својство директорија како би компоненте комуницирале и показале шта корисник жели да види.
На пример, када корисник одабере нови погон, Делпхи активира ДривеЦомбоБок ОнЦханге евент хандлер. Нека изгледа овако:
процедура ТФорм1.ДривеЦомбоБок1Цханге (пошиљалац: ТОбјецт);
бегинДирецториЛистБок1.Дриве: = ДривеЦомбоБок1.Дриве;
крај;
Овај код мења екран у ДирецториЛистБок активирањем њеног ОнЦханге Руковалац догађаја:
процедура ТФорм1.ДирецториЛистБок1Цханге (пошиљалац: ТОбјецт);
бегинФилеЛистБок1.Дирецтори: = ДирецториЛистБок1.Дирецтори;
крај;
Да бисте видели коју је датотеку корисник одабрао, морате користити ОнДблЦлицк догађај ФилеЛистБок:
процедура ТФорм1.ФилеЛистБок1ДблЦлицк (пошиљалац: ТОбјецт);
бегинСховмессаге ('Изабрано:' + ФилеЛистБок1.ФилеНаме);
крај;
Имајте на уму да је систем Виндовс двоструким кликом да одаберете датотеку, а не једним кликом. Ово је важно када радите са ФилеЛистБок-ом јер би помоћу тастера са стрелицом за кретање кроз ФилеЛистБок позвао било који онЦлицк руковатељ који сте написали.
Филтрирање екрана
Користите ФилтерЦомбоБок за контролу врсте датотека које се приказују у ФилеЛистБок-у. Након што сте својство ФилеЛист ФилтерЦомбоБок поставили на име ФилеЛистБок, поставите својство Филтер на врсте датотека које желите да прикажете.
Ево узорка филтера:
ФилтерЦомбоБок1.Филтер: = 'Све датотеке (*. *) | *. * | Пројектне датотеке (* .дпр) | * .дпр | Пасцал јединице (* .пас) | * .пас ';
Савети и савети
Подешавање ДирецториЛистБок-а. Својство погона и ФилеЛистБок. Својство директорија (у претходно написаним ОнЦханге догађајима за обраду догађаја) током извођења такође се може обавити у време пројектовања. Ову врсту везе можете остварити у време пројектовања постављањем следећих својстава (од Објецт Инспецтор):
ДривеЦомбоБок1.ДирЛист: = ДирецториЛистБок1
ДирецториЛистБок1.ФилеЛист: = ФилеЛистБок1
Корисници могу одабрати више датотека у ФилеЛистБок-у ако је својство МултиСелецт Труе. Следећи код показује како да направите листу више избора у ФилеЛистБок-у и прикажете је у СимплеЛистБок-у (нека „обична“ контрола ЛистБок-а).
вар к: цели број; ...
са ФилеЛистБок1 до
ако је СелЦоунт> 0 онда
за к: = 0 до ставке. Броји-1 учини
ако је тада изабран [к]
СимплеЛистБок. Предмети. Додај (ставке [к]);
Да бисте приказали имена пуних путања која нису скраћена елипсом, не доделите име објекта Лабел својству ДирЛабел у ДирецториЛистБок-у. Уместо тога, уметните Лабел у образац и поставите његово својство титла у догађају ОнЦханге ДирецториЛистБок-а у ДирецториЛистБок. Својство директорија.