Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2010, 19:47   #1
kosya
Новичок
Джуниор
 
Регистрация: 31.05.2010
Сообщений: 1
Вопрос Пароль на приложение в Delphi

Доброго время суток! Поставил пароль на приложение с ограниченным количествам попыток ввода.Вроде все как бы работает .Приложение запускается. При правильно введенном пароле переносит на следующею форму. Но если пароль введен неправильно, то вместо надписи у вас осталось 2 попытки пишет 4394882 попытки. Значит ошибка где-то в условии! Подскажите пожалуйста что и где исправить! Заранее благодарю за участие.

procedure TForm2.Button1Click(Sender: TObject);
const
pas='159357';
var
n,i:integer;
begin
i:=i+1;
n:=3-i;
if edit1.Text=pas then
begin
hide;
free;
form3.show;
end
else
if i=3 then
close
else
label1.caption:='Пароль введен не правильно.У вас еще' +inttostr(n)+ 'Попыток';
end;
kosya вне форума Ответить с цитированием
Старый 31.05.2010, 20:34   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
Tform2 =class(Tform)
..........
private
  i: integer;
end;

procedure TForm2.OnCreate(sender: TObject);
begin
   self.i=0;
end;

procedure TForm2.Button1Click(Sender: TObject);
const
  pas='159357';
var
  n:integer;
begin
  self.i:=self.i+1;
  n:=3-self.i;
  if edit1.Text=pas then
  begin
    hide;
   free;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 31.05.2010, 22:59   #3
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Цитата:
ошибка ... в условии!
Переменная i объявлена в процедуре, т.е. локально. Следовательно начальное значение ее не определено и может принимать любое значение.
А далее по программе : i:= i + 1; и n:= 3 - i;
Вот Вы и получаете количество оставшихся попыток (n) какоето неопределенное число.
i надо объявить глобально, тогда начальное значение будет равно 0.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 01.06.2010, 21:07   #4
Filutki
Новичок
Джуниор
 
Регистрация: 01.06.2010
Сообщений: 2
По умолчанию

кусок из моей программы, которую сам недавно писал, написана немного проще чем у тебя:
...
Код:
var  k:integer; 

...
procedure TForm1.Button1Click(Sender: TObject);
begin

if edit1.text='123456'
then begin
label1.Caption:='Верно';
edit1.Enabled:=false;
end
 else     begin
 k:=k-1;
  edit1.text:='';
 showmessage('Неверный пароль! У вас осталось '+inttostr(k)+' попыток');
 edit1.SetFocus;
  end;
  if k=0 then begin
  showmessage('Пароль введен неверно 3 раза, программа закрывается');
  form1.close;    end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
k:=3;
end;
Filutki вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пароль на Delphi Vlad111 Помощь студентам 5 02.06.2009 16:12
Восстановить административный пароль в Delphi программе chernic Фриланс 2 06.04.2009 15:17
Пароль на приложение Chals Общие вопросы Delphi 6 24.11.2007 21:32
Консольное приложение на Delphi Enko Помощь студентам 1 21.09.2007 10:42