haslo i logowanie

0

witam jestem poczatkujacym programista mam nadzieje ze ktos mi pomoze a wiec napisalem sobie program
ktory ma 2 formy na pierwszej jest pole tedit gdzie wpisuje haslo i przycisk akceptujacy logowanie - moj problem jest taki ze jezeli o jedno haslo to dziala otwiera sie druga forma i jest ok ale nie wiem jak mam zrobic zeby bylo mozna wpisac dwa lub wiecej hasel prosze o podpowiedz ponizej zamieszczam kod z unit 1, unit 2

UNIT 1

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 Form2:=TForm2.Create(Application);
 Form2.ShowModal; //formularz musi zostac zamkniety,
                  //aby program mogl byc kontynuowany
end;

end.

UNIT 2

unit Unit2;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm2 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Button1: TButton;
    Label2: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  zamknij:boolean;
implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
 if Edit1.text='nievidim' then
 begin
  Form1.Show;
  zamknij:=true;
  Form2.Close;
 end
  else Label1.Caption:='Bledne haslo';
end;

procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then Button1.Click;
end;

procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  CanClose:=zamknij;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  zamknij:=false;
end;

end.

prosze o pomoc
dziekuje pozdrawiam :)

0

Nie wiem czy dobrze zrozumiałem (bo strasznie chaotycznie piszesz) ale jeśli chcesz, żeby nowa forma się pokazywała podczas wpisania "kupa" albo "kupniak" albo "innehaslo" do Edita to między tymi możliwościami wpisania hasła daj sobie "or"... Np.

if Edit1.Text = ('kupa') or ('kupniak') or ('innehaslo') then //Blablabla
0

W obsludze przycisku logujacego napisz:

var listaHasel: TStrings;
     ok: boolean;
     haslo: string;
begin
  ok := false;
  haslo := edit1.text;
  listaHasel := TStrings.create;
  listaHasle.loadfromFile('ZapisaneHasla.txt');
  for i := 0 to ListaHasel.count-1 do 
    if haslo = listaHasel[i] then ok := true;
  listaHasel.free;
  if ok then form2.showmodal;
end;

oczywiscie w katalogu z programem musisz miec plik tekstowy
w ktorym w kazdej nowej linijce bedzie sie znajdowalo kolejne haslo.

dodatkowo ustaw w komponencie Edit wlasciwosc
PasswordCHar na '*' - tak zeby nie bylo widac co sie wpisuje (ale to pewnie juz wiesz)

No i przydaloby sie jakos szyfrowac i odszyfrowywac hasla zeby nie przechowywac ich w zwyklym pliku textowym,
bo tak kazdy moze je podejzec. ale to juz inny temat (na pewno go znajdziesz na 4p :P)

0

Witam
Johny_Morfina
bardzo dziekuje za pomoc ale po kompilacji wyskakuje mi blad "abstract error" i po zamknieciu tego komunikatu pokazujemi zaznaczona linijke na niebiesko i wskazuje w niej blad
for i := 0 to ListaHasel.count-1 do
prosze o pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1