Hoi Gajes, ( wat betekent 'Gajes' voor jouw ?)
Mischien dat je aan de onderstaande code wat hebt, ik gebruikt deze zelf ook, ik heb een apart paswoord scherm daar dien je het paswoord in te voeren en het leuke is dat deze elke dag verschillend is, dus m.a.w. datum afhankelijk,
dus ik typ het paswoord in en dan is het 59+ de datum van vandaag zodoende is deze elke dag anders.
Code:
unit Wachtwoord;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Mask, ExtCtrls;
type
TFrmWachtwoord = class(TForm)
BtOk: TBitBtn;
Image1: TImage;
BtCancel: TBitBtn;
Invoer: TMaskEdit;
Timer1: TTimer;
Label2: TLabel; {bevat de tekst 'Voe'}
Label3: TLabel; {bevat de tekst 'r'}
Label4: TLabel; {bevat de tekst ' uw paswoord in.'}
procedure FormCreate(Sender: TObject);
procedure BtOkClick(Sender: TObject);
procedure BtCancelClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Fout();
procedure FormShow(Sender: TObject);
procedure Label3Click(Sender: TObject);
private
{ Private declarations }
public
vRetries: byte;
vSucessfull: Boolean;
{ Public declarations }
end;
var
FrmWachtwoord: TFrmWachtwoord;
implementation
uses Optie;
{$R *.DFM}
{Procedure als het Formulier wordt geactiveerd, Set focus op Invoerbox.}
procedure TFrmWachtwoord.FormActivate(Sender: TObject);
begin
Invoer.SetFocus;
Invoer.Text := '';
end;
{Procedure als het Formulier wordt geshowd, Plaats in vorig Formulier in statusbar "Wachtwoord poging : 1"}
procedure TFrmWachtwoord.FormShow(Sender: TObject);
begin
vRetries := 1;
FrmOptie.StatusBar2.Panels[0].Text := 'Wachtwoord poging :' +
IntToStr(vRetries);
Application.ProcessMessages;
end;
{Procedure als er op OK geklikt wordt, test+ date now + 59' of 'TEST + date now + 59' is Wachtwoord.}
procedure TFrmWachtwoord.BtOkClick(Sender: TObject);
var
vGetal: Byte;
vWachtwoord1: string;
vWachtwoord2: string;
Present: TDateTime;
Year, Month, Day: Word;
label
Pass;
label
NotPassed;
begin
vGetal := 59; {Constante: optellen bij dagnummer van de maand.}
vWachtwoord1 := 'test'; {Constante: Wachtwoord lowercase.}
vWachtwoord2 := 'TEST'; {Constante: Wachtwoord UPPERCASE.}
Present := Now;
Decodedate(Present, Year, Month, Day);
if vRetries = 3 then {Na 3x fout invoeren meteen terug naar vorig Formulier}
begin
Fout();
goto NotPassed;
end;
if (Invoer.Text = vWachtwoord1 + IntToStr(Day + vGetal)) or
(Invoer.Text = vWachtwoord2 + IntToStr(Day + vGetal)) then
begin
vRetries := 1;
goto Pass; {Wachtwoord correct ingevoerd.}
end
else
begin {Wachtwoord NIET correct ingevoerd.}
Invoer.Text := '';
Invoer.SetFocus;
BtOk.Enabled := False;
BtCancel.Enabled := False;
inc(vRetries);
Timer1.Enabled := True;
FrmOptie.StatusBar2.Panels[0].Text := 'Fout wachtwoord !';
Application.ProcessMessages;
FrmOptie.Wachtwoord := False;
goto NotPassed;
end;
Pass:
FrmOptie.StatusBar2.Panels[0].Text := 'Wachtwoord correct.';
FrmOptie.Wachtwoord := True;
FrmWachtwoord.Close;
FrmOptie.Show;
NotPassed:
end;
{Procedure als er op Annuleren wordt geklikt, Plaats in vorig Formulier in statusbar "Wachtwoord geanuleerd en sluit het Formulier.}
procedure TFrmWachtwoord.BtCancelClick(Sender: TObject);
begin
FrmOptie.StatusBar2.Panels[0].Text := 'Wachtwoord geannuleerd.';
Application.ProcessMessages;
FrmWachtwoord.Close;
FrmOptie.Show;
end;
{Procedure als het Wachtwoord 3x fout wordt ingegeven, Sluit dan het Wachtwoord invoer scherm.}
procedure TFrmWachtwoord.Fout();
begin
FrmOptie.StatusBar2.Panels[0].Text := '';
Application.ProcessMessages;
vRetries := 1;
FrmWachtwoord.Close;
FrmOptie.Show;
end;
{Procedure er een fout Wachtwoord wordt ingegeven, Plaats in vorig Formulier in statusbar "Wachtwoord Fout !" dit duurt 1.5sec dan nieuwe tekst.}
procedure TFrmWachtwoord.Timer1Timer(Sender: TObject);
begin
FrmOptie.StatusBar2.Panels[0].Text := 'Wachtwoord poging :' +
IntToStr(vRetries);
Application.ProcessMessages;
BtOk.Enabled := True;
BtCancel.Enabled := True;
Timer1.Enabled := False;
end;
{Procedure om Wachtwoord automatisch in te vullen als er op 'Voe(r)' geklikt.}
procedure TFrmWachtwoord.Label3Click(Sender: TObject);
var
vvGetal: Byte;
vvWachtwoord1: string;
vPresent: TDateTime;
vYear, vMonth, vDay: Word;
begin
vvGetal := 59; {Constante: optellen bij dagnummer van de maand.}
vvWachtwoord1 := 'test'; {Constante: Wachtwoord lowercase.}
vPresent := Now;
Decodedate(vPresent, vYear, vMonth, vDay);
Invoer.Text := vvWachtwoord1 + IntToStr(vDay + vvGetal)
end;
end.
En als je het een beetje kan volgen zal je zien als je op het label3 klikt dat dan het correcte wachtwoord voor je wordt ingevoerd.
Als je niets van de bovenstaande code begrijpt dan wil ik het op je verzoek wel even 'herschrijven' of nader toelichten.
Ik hoop dat je er uit komt en dat je er wat aan hebt, dit is dus uiteraard nog niet gereed om buttons te disabelen, want het was een unit voor mijn eigen.
Alvast suc6, ik hoor het wel.
Ps. de knoppen beveiligen is simpel, standaard op gedisabled zetten en dan mbv een andere knop een pasword scherm openen en aan de hand van het resultaat dat daar uit komt de correcte knoppen enabelen.
Groeten uit een lekker Warm en benauwd Alkmaar.
Bookmarks