Delphi VCL: необъявленные элементы формы в пользовательской процедуре / функции - PullRequest
0 голосов
/ 09 марта 2012

У меня есть это:

procedure Welcome(user: string; accesslevel: integer);
begin
   if accesslevel>= 10  then btCustomers.Text = 'Customer overview';
end;

Хотя кнопка присутствует в форме, btCustomers объявляется как «необъявленный идентификатор». Чего мне не хватает?

P.S. Я знаю, что это должно быть обработано формой OnCreate, но процедура Welcome вызывается из внешней формы.

1 Ответ

5 голосов
/ 09 марта 2012

Вы можете передать ссылку на форму, чтобы можно было ссылаться на кнопку в свою очередь.

procedure Welcome(form: TMyForm; user: string; accesslevel: integer);
begin
   if accesslevel>= 10  then form.btCustomers.Text = 'Customer overview';
end;

Однако в любое время у вас есть глобальная функция области действия, которая в качестве первого параметра принимает ссылку наобъект, у вас есть кандидат на метод этого объекта.Итак, добавьте метод к TMyForm.

procedure TMyForm.Welcome(user: string; accesslevel: integer);
begin
   if accesslevel>= 10  then btCustomers.Text = 'Customer overview';
end;

и назовите его так:

MyForm.Welcome(user, accesslevel);
...