Цитата:
Сообщение от DJ PhoeniX
Так и напиши -
Код:
for i := 0 to TabSheet1.ComponentCount-1 do
if TabSheet1.Components[i] is TEdit then
for j := 63 to 100 do
if (TabSheet1.Components[i] as TEdit).Name = 'Edit' + IntToStr(j) then
(TabSheet1.Components[i] as TEdit).Color := clRed;
Или как-то таким же раком... не помню точно...
|
Если я правильно понял то вместо:
Код:
Form1.Edit63.color:=clRed;
...
Form1.Edit100.color:=clRed;
т.е. если всё писать вручную получается 37 действий, а если задавать таким поиском компонентов то он будет перебирать все компоненты (не только edit), сравнивать их с Edit, если его найдёт делать в цикле for 37 прогонов, чтобы присвоить нужному Edit значение, причём если найденный Edit не входит в диапазон 63-100, то получиться 63*37 прогонов со сравнением впустую... хм.. плюс 37*36 прогонов в пустую, если edit входит в диапазон 63-100, и того 3663 лишних действия + проверка НеEdit. хм...
Видимо лучше всё таки прописывать каждый элемент вручную...(((
Если я всё правильно понимаю, то по сути задача присвоения значений в цикле группе одинаковых элементов должна сводится к значительному уменьшению объёма кода, а не к увеличению количества действий...
Цитата:
Сообщение от dr. F.I.N.
Код:
procedure SetTextToEditByName(EditName, NewText: String);
var
e: TEdit;
begin
e := FindComponent(EditName);
if e <> nil then e.Text := NewText;
end;
Примерно так (по имени).
Доработать для твоей заачи - 2 минуты (добавить цикл и что там еще).
|
Здесь можно по подробнее?
я понял что должно быть примерно так:
Код:
var
e: TEdit;
begin
For i:=63 to 100 do
begin
e := FindComponent(Edit+i);
if e <> nil then e.Text := NewText;
end;
end;
Делфи при таком варианте пишет "несовместимые типы TEdit и TComponent (или Tstring)" забыл уже точно