Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
Вниз
Как обоити все компоненты Найти похожие ветки
← →
Virus (2003-10-17 08:23) [0]Как обоити все компоненты через цикл?
У меня на форме есть 25 компонентов Edit. Нужно во всех свойству text присвоить значение например "1". К каждому обращаться по отдельности, получается слишком большой код.
← →
MBo (2003-10-17 08:34) [1]ComponentCount, Components, for, is, as
см. также ControlCount, Controls
← →
TUser (2003-10-17 09:40) [2]Создай эдиты динамически в виде массива. Типа так
for i:=0 to 24 do begin
edit1[i]:=TEdit.Create;
//Здесь укажи св-ва эдита, на какой он форме, расположение
end;
// .....
for i:=0 to 24 do
edit1[i].Text:="1";
← →
AIDix (2003-10-17 10:36) [3]А можно ещё и так:
procedure X;
var I:Integer;
const CountEdit=25;
begin
for I:= 0 to CountEdit do
begin
TEdit(Self.FindComponent("Edit"+IntToStr(I))).Caption:="1";
{ "begin-end" y "for" на всякий пожарный! }
end;
end;
← →
KSergey (2003-10-17 12:09) [4]Я добрый сегодня ;)
Обойти все компоненты на форме и для TEdit уст. св-ство Text в "1"
procedure TAnyForm.SetAllEditsTextTo_1;
// ф-ция перебирает все элементы, лежащие на указанном AWinCtrl и для найденных edit уст. Text в 1
// на найденных ТWinCtrl пытается найти дочерние
procedure LookAllEdits (const AWinCtrl: TWinControl);
var
i: Integer;
begin
if (AWinCtrl is TEdit) then TEdit(AWinCtrl).Text := "1";
with AWinCtrl do
for i := 0 to ControlCount-1 do
if Controls[i] is TWinControl then
LookAllEdits(TWinControl(Controls[i])); // рекурсивно вызвать эту ф-цию
end;
begin
LookAllEdits (Self); // стартовать рекурсивную ф-цию просмотра элементов
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.10.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.012 c