У меня есть два компонента, созданных динамически, кнопка (btnEnter) и edit (edtID) - где пользователь вводит свой идентификатор пользователя. Я хочу, чтобы программа проверила, ввел ли пользователь действительный идентификатор, когда он нажал кнопку.Динамические объекты с обработчиком событий - Delphi
код у меня есть:
1) Когда объекты создаются
with btnEnter do
{edit properties such as caption, etc}
OnClick := ValidateID;
2) Процедура объявляется следующим образом:
procedure ValidateID (Sender : TObject);
То, что я хотел бы сделать, это передайте текст в редактировании с помощью процедуры в качестве параметра, чтобы процедура могла обрабатывать текст и определять, действительно ли это или нет.
Так что я пытался, но не работа:
procedure ValidateID (Sender : TObject; sID : string);
with btnEnter do
OnClick := ValidateID(edtID.Text);
бы очень признателен, если кто-то может помочь мне с этим. Спасибо
Назначение (OnClick: =) не запускает событие, даже если у вас может быть произвольная подпись события, это не поможет вам. Я думаю, вы должны жестко закодировать код в обработчике кликов. –
Назначение - это всего лишь обратный вызов. Событие инициируется вызовом обратного вызова. Вы должны уважать подпись типа (_procedure (Sender: TObject) _). Я не понимаю, почему вы не можете проверить значение редактирования в _ValidateID_. Они находятся в одном и том же контексте, вы можете получить доступ к его ценности, так что в чем проблема? –