Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.10.30;
Скачать: CL | DM;

Вниз

Как обоити все компоненты   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.025 c
1-98564
arche
2003-10-20 10:28
2003.10.30
Как лучше написать код?


3-98470
Dim!S
2003-10-10 08:06
2003.10.30
Колонка в DBGrid


1-98626
Delph
2003-10-21 16:23
2003.10.30
PopupMenu


1-98647
dream
2003-10-17 08:19
2003.10.30
как из dll передать строку в приложение ?


1-98547
Замученный
2003-10-20 15:32
2003.10.30
Как начертить график