Како направити образац за пријаву у Делпхи

click fraud protection

МаинФормоф а Делпхи апликација је образац (прозор) који је први креиран у главном телу апликације. Ако је потребно да имплементирате неку врсту ауторизације за своју Делпхи апликацију, можда бисте желели да прикажете дијалог за пријаву / лозинку пре него што се главни образац створи и прикаже кориснику. Укратко, идеја је да се креира, прикаже и уништи дијалог за пријаву пре креирања главног обрасца.

Делпхи МаинФорм

Када се створи нови пројекат Делпхи, "Форм1" аутоматски постаје вредност својства МаинФорм (од глобалног Апликација објекта). Да бисте додјелили други облик својству МаинФорм, користите страницу Обрасци на Пројекат> Опције дијалошки оквир у време пројектовања. Када се главни образац затвори, апликација се прекида.

Дијалог за пријаву / лозинку

Започнимо креирањем главног облика апликације. Креирајте нови пројекат Делпхи који садржи један образац. Овај облик је, по дизајну, главни облик.

Ако промените име обрасца у „ТМаинФорм“ и сачувате јединицу као „маин.пас“, то изворни код пројекта изгледа овако (пројекат је сачуван као "ПассвордАпп"):

instagram viewer
програм ПассвордАпп;
користи
Обрасци,
 главни ин 'маин.пас' {МаинФорм};
{$ Р * .рес}
 започети
 Апликација. Иницијализирати;
 Апликација. ЦреатеФорм (ТМаинФорм, МаинФорм);
 Апликација. Трцати;
 крај.

Сада додајте други образац пројекту. По дизајну, други додани образац наводи се на листи "Аутоматски креирај обрасце" у дијалогу Опције пројекта.

Наведите други облик „ТЛогинФорм“ и уклоните га са листе „Ауто-Цреате Формс“. Спремите јединицу као "логин.пас".

На образац додајте ознаку, измене и дугме, а након тога метода класе да бисте креирали, показали и затворили дијалог за пријаву / лозинку. Метода „Екецуте“ враћа истину ако је корисник у пољу за лозинку унео тачан текст.

Ево пуног изворног кода:

јединица Пријавите се;
интерфејс
 користи
 Виндовс, Поруке, СисУтилс, Варијанте, Класе,
 Графика, контроле, обрасци, дијалози, СтдЦтрлс;
 тип
 ТЛогинФорм = класа(ТФорм)

ЛогИнБуттон: ТБуттон;
пвдЛабел: ТЛабел;
пассвордЕдит: ТЕдит;
процедура ЛогИнБуттонЦлицк (пошиљалац: ТОбјецт);

публиццласс функција Извршите: боолеан;крај;
имплементација{$ Р * .дфм}
функција класе ТЛогинФорм. Извршите: боолеан;Почни са ТЛогинФорм. Креирај(нула) дотри
 Резултат: = СховМодал = мрОк;
 напокон
 Бесплатно;
 крај; крај;
процедура ТЛогинФорм. ЛогИнБуттонЦлицк (Пошиљалац: ТОбјецт); почетна лозинкаЕдит. Тект = 'делпхи' онда
 МодалРесулт: = мрОК
 друго
 МодалРесулт: = мрАборт;
 крај;
крај. 

Метод Екецуте динамички ствара инстанца ТЛогинФорм-а и приказује га користећи СховМодал метод. СховМодал се не враћа док се образац не затвори. Када се образац затвори, враћа вредност МодалРесулт својство.

ОнЦлицк обрађивач догађаја "ЛогИнБуттон" додељује "мрОк" својству МодалРесулт ако је корисник унео исправну лозинку (која је "делпхи" у горњем примеру). Ако је корисник унео погрешну лозинку, МодалРесулт је постављен на "мрАборт" (то може бити било шта осим "мрНоне").

Постављање вриједности својству МодалРесулт затвара образац. Изврши повраћај труе ако је МодалРесулт једнак „мрОк“ (ако је корисник унео исправну лозинку).

Не креирајте МаинФорм пре пријављивања

Сада морате бити сигурни да главни образац није креиран ако корисник није успео да унесе исправну лозинку.

Ево како би требао изгледати изворни код пројекта:

 програм ПассвордАпп;
користи
Обрасци,
главни у 'маин.пас' {МаинФорм},
логин у 'логин.пас' {ЛогинФорм};
 {$ Р * .рес}
 бегиниф ТЛогинФорм. Екецуте тхенбегин
 Апликација. Иницијализирати;
 Апликација. ЦреатеФорм (ТМаинФорм, МаинФорм);
 Апликација. Трцати;
 енделсебегин
 Апликација. МессагеБок ('Нисте овлашћени за употребу апликације. Лозинка је „делпхи“. ', „Делпхи апликација заштићена лозинком“);
 крај; крај.

Обратите пажњу на употребу ако тада још блок да одредите да ли треба да се створи главни образац. Ако „Екецуте“ врати лажно, МаинФорм се не креира и апликација се прекида без покретања.

instagram story viewer