W formie logowania w zalezności od spełnionych warunków tworzy mi sie dynamicznie pole Edit edPowtorzHaslo, w którym powinno się wpisac to samo co w edHaslo. Chcę do procedury OnExit pola edPowtórzHaslo podpiąc kod , który porównuje czy wpisano w obu polach to samo. Piszę tak:
Najpierw sprawdzam warunek i tworze dynamicznie pola:
procedure TfmLogowanie.FormShow(Sender: TObject);
begin
{sprawdza czy istnieje plik użytkowników}
if not FileExists('setup.dat') then
begin
MessageDlg('Program uruchamiany jest po raz pierwszy!',mtWarning,[mbOk],0);
btOK.Enabled:=False;
PowtorzHaslo;
end;
end;
procedure TfmLogowanie.PowtorzHaslo;
{dynamicznie tworzy pola Label i Edit przy logowaniu}
var
laPowtorzHaslo: TLabel;
begin
fmLogowanie.Height:=268; //zwiększenie rozmiaru formy
laPowtorzHaslo := TLabel.Create(fmLogowanie);
laPowtorzHaslo.Parent := fmLogowanie; //przypisanie rodzica
laPowtorzHaslo.Font.Style:=[fsBold];
laPowtorzHaslo.Caption := 'Powtórz hasło';
laPowtorzHaslo.Left := 8;
laPowtorzHaslo.Top := 185;
edPowtorzHaslo := TEdit.Create(fmLogowanie);
edPowtorzHaslo.Parent := fmLogowanie; //przypisanie rodzica
edPowtorzHaslo.Left := 8;
edPowtorzHaslo.Top := 203;
edPowtorzHaslo.Width:=217;
edPowtorzHaslo.TabOrder:=2;
end;
No i na koniec dla porównania piszę:
procedure TfmLogowanie.edPowtorzHasloExit(Sender: TObject);
begin
if edHaslo.Text=edPowtorzHaslo.Text then
btOK.Enabled:=True
else
ShowMessage('źle');
end;
Zmienną edPowtorzHaslo zadeklarowaną mam jako zmienną globalną. Ale gdy wychodzę z kontrolki edPowtórzHaslo kod przy OnExit nie jest wykonywany. Co robię żle - poradźcie.
Pozdr. ;)