У меня есть эта функция ниже, которая использует ComponetCount, она находится в Form1, когда я использую эту функцию в другой форме, вставляя Form2 в Form1, она приносит количество Компонентов Form1, а не Form2, как я могу получить вокруг этой проблемы? Следит функция:Delphi: как использовать ComponentCount в публичной функции?
function Form1.getgridId(KeyField: String): string;
var
i: Integer;
id: string;
begin
for i := 0 to ComponentCount -1 do
begin
if Components[i] is TCustomDBGrid then
id:= TCustomDBGrid(Components[i]).DataSource.DataSet.FieldByName(KeyField).AsString;
end;
Result := id;
end;
ANS (в моем конкретном случае) - С помощью всего:
function getgridId(KeyField: String): string;
var
i: Integer;
id: string;
begin
for i := 0 to Screen.ActiveForm.ComponentCount -1 do
begin
if Screen.ActiveForm.Components[i] is TCustomDBGrid then
id := TCustomDBGrid(Screen.ActiveForm.Components[i]).DataSource.DataSet.FieldByName(KeyField).AsString;
end;
Result := id;
end;
Я понятия не имею, о чем вы спрашиваете. Какой класс вы пытаетесь создать? Как этот код относится к вашему вопросу? О каких единицах вы говорите? –
Компоненты находятся на форме или подобном, а не на устройстве. Итак, передайте эту форму (которая уже была создана?) Функции и повторите ее компоненты. Или передать сетку и не перебирать? –
Вы уверены, что хотите получить значение из ** последнего ** 'TDBGrid'? –