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