Hvordan lage et Delphi-påloggingsskjema

MainFormof a Delphi-applikasjonen er et skjema (vindu) som er det første som opprettes i hoveddelen av applikasjonen. Hvis du trenger å implementere en slags autorisasjon for Delphi-applikasjonen, kan det være lurt å vise en innloggings- / passorddialog før hovedskjemaet opprettes og vises for brukeren. Kort sagt, ideen er å opprette, vise og ødelegge dialogboksen "innlogging" før du oppretter hovedskjemaet.

The Delphi MainForm

Når et nytt Delphi-prosjekt opprettes, blir "Form1" automatisk verdien til MainForm-egenskapen (av det globale applikasjon gjenstand). Hvis du vil tilordne et annet skjema til MainForm-egenskapen, bruker du Skjema-siden til Prosjekt> Alternativer dialogboks på designtid. Når hovedskjemaet lukkes, avsluttes applikasjonen.

Innloggings- / passorddialog

La oss starte med å lage hovedformen for applikasjonen. Lag et nytt Delphi-prosjekt som inneholder en form. Denne formen er, etter design, hovedformen.

Hvis du endrer navnet på skjemaet til "TMainForm" og lagrer enheten som "main.pas", vil the

instagram viewer
prosjektets kildekode ser slik ut (prosjektet ble lagret som "PasswordApp"):

program PasswordApp;
bruker
former,
 hoved- i 'main.pas' {MainForm};
{$ R * .res}
 begynne
 Applikasjon. Initial;
 Applikasjon. CreateForm (TMainForm, MainForm);
 Applikasjon. Løpe;
 slutt.

Nå kan du legge til et nytt skjema til prosjektet. Ved design blir den andre skjemaet som er lagt til, oppført i listen "Auto-Create Forms" i dialogboksen Project Options.

Navngi den andre formen "TLoginForm" og fjern den fra listen "Auto-Create Forms". Lagre enheten som "login.pas".

Legg til en etikett, rediger og knapp på skjemaet, etterfulgt av a klassemetode for å opprette, vise og lukke dialogboksen for innlogging / passord. Metoden "Utfør" returnerer sann hvis brukeren har skrevet inn riktig tekst i passordboksen.

Her er den fullstendige kildekoden:

enhet Logg Inn;
grensesnitt
 bruker
 Windows, meldinger, SysUtils, varianter, klasser,
 Grafikk, kontroller, skjemaer, dialoger, StdCtrls;
 type
 TLoginForm = klasse(TForm)

LogInButton: TButton;
pwdLabel: TLabel;
passordEdit: TEdit;
prosedyre LogInButtonClick (avsender: TObject);

publicclass-funksjon Utføre: boolsk;slutt;
gjennomføring{$ R * .dfm}
klassefunksjon TLoginForm. Utføre: boolsk;starte med TLoginForm. Skape(nil) dotry
 Resultat: = ShowModal = mrOk;
 endelig
 Gratis;
 slutt; slutt;
fremgangsmåte TLoginForm. LogInButtonClick (avsender: TObject); startif passwordEdit. Tekst = 'delphi' deretter
 ModalResult: = mrOK
 ellers
 ModalResult: = mrAbort;
 slutt;
slutt. 

Utfør-metoden skaper dynamisk en forekomst av TLoginForm og viser den ved å bruke ShowModal metode. ShowModal kommer ikke tilbake før skjemaet lukkes. Når skjemaet lukkes, returnerer det verdien på ModalResult eiendom.

Hendelsesbehandleren "LogInButton" OnClick tildeler "mrOk" til ModalResult-egenskapen hvis brukeren har tastet inn riktig passord (som er "delphi" i eksemplet ovenfor). Hvis brukeren har oppgitt et galt passord, er ModalResult satt til "mrAbort" (det kan være alt annet enn "mrNone").

Innstilling av en verdi til egenskapen ModalResult lukker skjemaet. Utfør returnerer true hvis ModalResult tilsvarer "mrOk" (hvis brukeren har tastet inn riktig passord).

Ikke opprett MainForm før du logger inn

Du trenger bare å sørge for at hovedskjemaet ikke opprettes hvis brukeren ikke klarte å oppgi riktig passord.

Slik ser prosjektets kildekode ut:

 program PasswordApp;
bruker
former,
main i 'main.pas' {MainForm},
logg inn i 'login.pas' {LoginForm};
 {$ R * .res}
 beginif TLoginForm. Henrette thenbegin
 Applikasjon. Initial;
 Applikasjon. CreateForm (TMainForm, MainForm);
 Applikasjon. Løpe;
 endelsebegin
 Applikasjon. MessageBox ('Du har ikke autorisasjon til å bruke applikasjonen. Passordet er "delphi". ',' Passordbeskyttet Delphi-program ');
 slutt; slutt.

Legg merke til bruken av om så ellers blokker for å bestemme om hovedformen skal opprettes. Hvis "Utfør" returnerer usant, opprettes ikke MainForm og applikasjonen avsluttes uten å starte.