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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2022, 23:03   #11
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

У обычного Edit есть событие для контроля ввода данных
macomics вне форума Ответить с цитированием
Старый 30.05.2022, 23:13   #12
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
У обычного Edit есть событие для контроля ввода данных
Это отлично, но почему-то нам говорят писать функции, вместо того, чтобы пользоваться этим(
mr.stranger вне форума Ответить с цитированием
Старый 30.05.2022, 23:23   #13
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Это вы у преподавателя только что выяснили? Тогда скажите что он учит вас дурным манерам. Если предусмотрена функция фильтра - лучше использовать ее.

Иначе зачем тогда сотни людей делали для вас все эти нагромождения кода, которые выливаются в исполняемый файл размером ок 1 Мб, и выводящий пустое окно.

В любом случае прочитайте про создание функций и операцию
Код:
exit;
Тогда сможете написать что-то вроде этого
Код:
function Prov(Edit1, Edit2, Edit3: String): Boolean;
begin
  Result := False; // Условие не выполнено
  if Edit1 = '' then exit;
  if Edit2 = '' then exit;
  ...
  Result := True; // Все условия выполнены
end;

Последний раз редактировалось macomics; 30.05.2022 в 23:26.
macomics вне форума Ответить с цитированием
Старый 30.05.2022, 23:25   #14
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Если предусмотрена функция фильтра - лучше использовать ее.
Мы только недавно начали изучать, наверное поэтому ими не пользуемся, а учимся самому языку
mr.stranger вне форума Ответить с цитированием
Старый 30.05.2022, 23:31   #15
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Код:
function Prov(Edit1, Edit2, Edit3:string): boolean;
begin
result := false;
if (Edit1 = '') or (Edit2 = '') or (Edit3 = '') then
begin
ShowMessage('Пусто');
Exit;
end
else
result := true;
//If (Edit3 =дублированная)
end;
Работает
mr.stranger вне форума Ответить с цитированием
Старый 30.05.2022, 23:32   #16
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Так если воспользуетесь забежав чуть вперед - ничего страшного не произойдет, а преподаватель похвалит за предприимчивость. И я немного ошибся с названием события - OnChange. OnChanging это событие в TComboBox
Код:
function Prov(Edit1, Edit2, Edit3:string): boolean;
begin
result := false;
if (Edit1 = '') or (Edit2 = '') or (Edit3 = '') then
begin
ShowMessage('Пусто');
Exit;
end
else // Это не нужно. Тогда Result := True будет выполняться если условие не выполнено. А надо в конце функции, когда все условия проверили.
result := true;
//If (Edit3 =дублированная)
end;

Последний раз редактировалось macomics; 30.05.2022 в 23:35.
macomics вне форума Ответить с цитированием
Старый 30.05.2022, 23:40   #17
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Код:
If not StrToInt(Edit3) in [0..9] then
ShowMessage('Введите числа');
Когда пытаюсь сделать проверку на числовой ввод, дает ошибку
mr.stranger вне форума Ответить с цитированием
Старый 30.05.2022, 23:42   #18
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Так если воспользуетесь забежав чуть вперед - ничего страшного не произойдет, а преподаватель похвалит за предприимчивость.
Зависит от преподавателя хахах)
У меня нормальный препод, но суть задания в работе с эдитами по классике, поэтому необходимо несколько помучаться
mr.stranger вне форума Ответить с цитированием
Старый 30.05.2022, 23:55   #19
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от mr.stranger Посмотреть сообщение
по классике
Это прыгать надо по ним что ли


Цитата:
Сообщение от mr.stranger Посмотреть сообщение
If not StrToInt(Edit3) in [0..9] then
ShowMessage('Введите числа');

Когда пытаюсь сделать проверку на числовой ввод, дает ошибку
Потому что вы пытаете проверить строку - несколько символов. Надо проверить каждый в цикле
Код:
for i := low(Edit3) to high(Edit3) do if not Edit3[i] in ['0' .. '9'] then exit;
macomics вне форума Ответить с цитированием
Старый 31.05.2022, 10:46   #20
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,551
По умолчанию

Цитата:
Сообщение от mr.stranger Посмотреть сообщение
Тот, кого нельзя называть?))
Но это именно он(
В Паскале нет Edit. Конечно, если это консольный ТР, а не, скажем, Free Pascal от Лазаря.
digitalis вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл проверки ввода данных Moonlite Windows Forms 4 10.06.2016 17:00
Ошибка проверки корректности ввода Valentina2011 Общие вопросы C/C++ 3 13.05.2012 20:40
функция проверки орфографии ЕленаШ Помощь студентам 0 27.03.2012 00:21
C#. Внешнее завершение метода методом проверки ввода killo C# (си шарп) 1 16.11.2010 12:53
Помогите написать скрипт для проверки правильности ввода числа в строке DiSpalL JavaScript, Ajax 6 19.06.2009 16:48