Я разрабатываю программу, которая вычисляет средние значения некоторых данных в разных TStringGrid
, и я подумал использовать процедуру. Он называется calcola
.
procedure calcola(numero:ShortInt; StringGrid:TStringGrid; pbarprog:ShortInt);
var i,j,cont,num:shortint;
avg,temp,numfl:double;
a:string;
Edit1:TEdit;
begin
if StringGrid.Colcount>1 then
//other code
avg:=temp/cont;
TLabel(FindComponent('Label'+IntToStr(num))).Caption:=FloatToStrF(avg, ffGeneral, 1, 1);
Edit1.Text:=FloatToStr(StrToFloat(TLabel(FindComponent('Label'+IntToStr(num))).Caption)*10);
TProgressBar(FindComponent('ProgressBar'+IntToStr(i+pbarprog))).Position:=StrToInt(Edit1.Text);
//other code
end;
end;
end;
В этой процедуре Lazarus сообщает мне "Идентификатор FindComponent не найден". Затем я вырезал/вставил тот же код в procedure TForm1.Button1Click(Sender: TObject);
, и у меня не было ошибок.
Мне нужно использовать FindComponent()
внутри calcola
, как я могу это сделать?
FindComponent
— это методTComponent
, а не функция. - person TLama   schedule 10.08.2013FindComponent
, например,PassedForm.FindComponent
). Но этот код требует почти полного редизайна. А если бы это произошло, то не было бы такого вопроса. - person TLama   schedule 10.08.2013Form1
(в вашем случае вы бы назвали ее какForm1.FindComponent
в своей процедуре). Или вы можете добавить еще один параметр в свою процедуру, где вы должны передать объект формы и вызвать этот метод для этого параметра. Но лучше как-то подумать о редизайне. - person TLama   schedule 10.08.2013