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

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

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

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

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

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

Доброго времени суток
Помогите пожалуйста с функцией
Надо написать функцию проверки ввода данных через три Эдита, на выходе Boolean
Проверка на пустые строки и дублированные записи
Преподаватель посоветовал делать так:
Код:
function Prov(Edit1.Text,Edit2.Text,Edit3.Text:string):boolean;
...
Но у меня не получается
Что ни напишу - выдает ошибку, уже голова кругом
mr.stranger вне форума Ответить с цитированием
Старый 29.05.2022, 23:21   #2
funny.weirdo
Пользователь
 
Регистрация: 24.05.2022
Сообщений: 15
По умолчанию

Код:
function Prov(Edit1,Edit2,Edit3:TForm):boolean;
Попробуйте так
funny.weirdo вне форума Ответить с цитированием
Старый 29.05.2022, 23:38   #3
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Телепатор подсказывает, что это Дельфи или Паскаль.
Что значит "не получается" ? Выдаёт ошибку? Где тело функции ?
Я бы в Дельфи написал так:
Код:
   function TestInput(arg1,arg2,arg3:string):boolean;
   Begin
       Result :=  (arg1='')  or (    и т.д.  все условия
       ...........
    End ;
// Вызов функции: - выдаст True при наличии хотя бы одной ошибки. Надо наоборот? Применяем not ( 
    If TestInput (Edit1.Text,Edit2.Text,Edit3.Text) then ....
..........................
А неправильных советов - не надо. Следует чётко различать список формальных параметров в заголовке функции - и список фактических параметров в вызове этой функции. И как оно работает.

macomics - тип-то он как раз и указал, а вот путаница в понятиях формальный и фактический параметр - на лице.
Edit - это не string. String - это его свойство Text
..........................
Я, конечно, не аттестационная комиссия, но по моему убеждению, препод выбрал не ту специальность.

Последний раз редактировалось digitalis; 29.05.2022 в 23:57.
digitalis вне форума Ответить с цитированием
Старый 29.05.2022, 23:39   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Проблема в том, что вы забыли указать тип аргументов
Код:
function Prov(Edit1, Edit2, Edit3: String): Boolean;
ADD:
Цитата:
Сообщение от digitalis Посмотреть сообщение
Я бы написал так:
Опередили

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

Код:
function Prov(Edit1, Edit2, Edit3:string): boolean;
begin
if (Edit1 = '') or (Edit2 = '') or (Edit3 = '') then
ShowMessage('Пусто');
end;
Подскажите пожалуйста, как включить в код еще проверку, чтобы через один из эдитов вводились только числа, иначе сообщение об ошибке, и проверку на дублированную запись?
mr.stranger вне форума Ответить с цитированием
Старый 30.05.2022, 22:53   #6
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

А не проще вместо одного из них использовать MaskEdit и установить в нем маску типа '09'
macomics вне форума Ответить с цитированием
Старый 30.05.2022, 22:53   #7
mr.stranger
Пользователь
 
Регистрация: 02.05.2022
Сообщений: 52
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
или Паскаль.
Тот, кого нельзя называть?))
Но это именно он(

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

Цитата:
Сообщение от macomics Посмотреть сообщение
А не проще вместо одного из них использовать MaskEdit и установить в нем маску типа '09'
Такого не знаю, увы
Возможно, что бы это ни было, так и было бы проще, но я не знаком с таким
Хотелось бы не просто переписать и сдать, а вникнуть, поэтому использую те минимальные примитивные познания, что у меня имеются)
К тому же к выполнению задания все же есть требования, как то 'ввод через эдиты, вывод в стринггрид' и тд
mr.stranger вне форума Ответить с цитированием
Старый 30.05.2022, 22:58   #9
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Вкладка Additional компонент MaskEdit Выглядит как Edit но с ## внутри
В любом случае у Edit есть событие OnChanging для создания фильтра ввода. В инспекторе объектов на вкладке Events/События

ADD: Используя это событие можно контролировать ввод по мере набора и выделять цветом фона тот Edit, который содержит не верные данные

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

Цитата:
Сообщение от macomics Посмотреть сообщение
Вкладка Additional компонент MaskEdit Выглядит как Edit но с ## внутри
В любом случае у Edit есть событие OnChanging для создания фильтра ввода. В инспекторе объектов на вкладке Events/События
Спасибо, буду знать)
Но, повторюсь, по заданию есть требования, поэтому ввод через классические эдиты
mr.stranger вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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