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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.11.2022, 14:35   #1
Raf5456
 
Регистрация: 01.11.2022
Сообщений: 6
По умолчанию Инициализация переменной

Написал код для входа, но выходит ошибка [Warning] Vxod1.pas(64): Variable 'Varh' might not have been initialized
Не могу понять, что не так.

Код:
procedure TVxod.ButtonVxodClick(Sender: TObject);

var LogPass:Array of string;
Varh,I,H:integer;
ResultLogPass:string;
begin
SetLength(LogPass,800);

ADODataSetUserTable.Active:=True;

ADODataSetUserTable.First;

for I := 0 to ADODataSetUserTable.RecordCount -1 do //Обработка логина и пароля пользователя
  begin
  LogPass[I]:=ADODataSetUserTable.FieldValues['Username']+''+ADODataSetUserTable.FieldValues['UserPass'];
  ADODataSetUserTable.Next;
  Inc(Varh);
  end;


ResultLogPass:=Trim(EditLogin.Text)+' '+Trim(EditPassword.Text);
for H:=0 to Varh do
  begin
  if ResultLogPass = LogPass[H] then
   begin
    bron.ShowModal;
    end
    else
    LabelInfoNone.Caption:='Не верный логин или пароль';
   end;
end;

Последний раз редактировалось BDA; 19.11.2022 в 01:36.
Raf5456 вне форума Ответить с цитированием
Старый 01.11.2022, 14:41   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

Ну дык козе понятно:
Код:
Inc(Varh);
а что до того было в Varh ? Не стоит полагаться, что система при загрузке программы обнулит всё и всех - начальное значение переменной надо присваивать явно.
Ну хотя бы так:
Код:
  Varh := 0 ;

Последний раз редактировалось digitalis; 01.11.2022 в 14:48.
digitalis вне форума Ответить с цитированием
Старый 01.11.2022, 15:06   #3
Raf5456
 
Регистрация: 01.11.2022
Сообщений: 6
По умолчанию

digitalis, понял, спасибо
Raf5456 вне форума Ответить с цитированием
Старый 01.11.2022, 19:41   #4
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,309
По умолчанию

Ещё замечание:
Цитата:
Написал код для входа, но выходит ошибка [Warning] Vxod1.pas(64): Variable 'Varh' might not have been initialized
Это не ошибка, а предупреждение, и код будет работать. Вот только насколько правильно?
Предупреждения можно и нужно анализировать, но можно и игнорировать.
С ошибками (Error) код не сформируется.
Как-то так, ...
ViktorR на форуме Ответить с цитированием
Старый 18.11.2022, 17:18   #5
Raf5456
 
Регистрация: 01.11.2022
Сообщений: 6
По умолчанию

]ViktorR[/B], значение присвоил. Ошибок/предупреждений нет. Но после того, как введешь правильный логин/пароль, сразу появляется сообщение :"Не верный логин или пароль". Подскажите пожалуйста. В чем проблема?
dd9fbf24-b58f-4bbf-afa0-0973b1f8cda8.jpg

8d158099-e842-4f43-835f-faf8f9719a26.jpg

Последний раз редактировалось Raf5456; 18.11.2022 в 17:35.
Raf5456 вне форума Ответить с цитированием
Старый 18.11.2022, 19:43   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Вот тут
Цитата:
Сообщение от Raf5456 Посмотреть сообщение
Код:
LogPass[I]:=ADODataSetUserTable.FieldValues['Username']+''+ADODataSetUserTable.FieldValues['UserPass'];
у вас пробел отсутствует, а тут
Цитата:
Сообщение от Raf5456 Посмотреть сообщение
Код:
ResultLogPass:=Trim(EditLogin.Text) +' '+Trim(EditPassword.Text);
присутствует. Но без тега [CODE][/CODE] это лишь догадка.
macomics вне форума Ответить с цитированием
Старый 18.11.2022, 20:29   #7
Raf5456
 
Регистрация: 01.11.2022
Сообщений: 6
По умолчанию

macomics,да, верно, я это переделал(Все равно спасибо). Но сообщение все равно выходит, если даже логин/пароль верны. Цикл перепроверил, вроде без ошибок написано.
Raf5456 вне форума Ответить с цитированием
Старый 19.11.2022, 09:44   #8
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Надо бы убрать вывод сообщения об ошибке из цикла проверки. Т.е. добавьте переменную флаг, которую сбрасывайте при совпадении пароля, а после цикла, если флаг не сброшен, выводите сообщение.

Последний раз редактировалось macomics; 19.11.2022 в 09:46.
macomics вне форума Ответить с цитированием
Старый 19.11.2022, 14:07   #9
Raf5456
 
Регистрация: 01.11.2022
Сообщений: 6
По умолчанию

macomics, Хорошо, попробую. Спасибо большое.
Raf5456 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к глобальной переменной, имя которой совпадает с именем формального параметра, или локальной переменной? taras-proger77 Общие вопросы C/C++ 4 17.04.2019 14:48
передача значения переменной одной формы в описание переменной другой diekster Общие вопросы Delphi 14 18.05.2014 02:42
при вводе уже существующей переменной появлялось поле с именнами этой переменной. desconocida16 Visual C++ 1 22.02.2014 18:58
Для public переменной класса присвоить адрес ячеек из внешней переменной _KUL Qt и кроссплатформенное программирование С/С++ 2 28.05.2012 12:04
Работа с файлами (создание, удаление, открытие, связываение с переменной, очищение памяти переменной) Arkuz Общие вопросы Delphi 12 25.09.2007 20:47