![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
У меня в проге много эдитов (162). Как сделать цикл, чтобы в нём менялись эдиты, сначала Edit1, потом Edit2, Edit3 и т. д.
Пока у меня всё линейно и громоздко. Код:
Edit1.text:=''; Edit1.Color:=ClWindow; Edit1.ReadOnly:=false; Edit1.TabStop:=true; Edit2.text:=''; Edit2.Color:=ClWindow; Edit2.ReadOnly:=false; Edit2.TabStop:=true; и т. д. до 162. И может есть такая возможность, прописать такой шаг: все_эдиты.ReadOnly:=false; Как это записать на делфи? |
|
#2
|
||||
|
||||
|
Код:
for i := 0 to ComponentCount - 1 do
if Components[i] is TEdit
then (Components[i] as TEdit).ReadOnly := False; |
| Этот пользователь сказал Спасибо Yurk@ за это полезное сообщение: | ||
mpdasa (28.07.2012)
| ||
|
#3
|
|||
|
|||
|
Цитата:
Код:
var
i: Integer;
begin
for i := 1 to 162 do
begin
with FindComponent('Edit'+IntToStr(i)) as TEdit do
begin
text:='';
Color:=ClWindow;
ReadOnly:=false;
TabStop:=true;
end;
end;
end;Цитата:
|
| Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение: | ||
mpdasa (28.07.2012)
| ||
|
#4
|
|||
|
|||
|
А как сделать цикл со следующим кодом?
Эта процедура делает цветную рамку вокруг компонента, в моём случае label. Код:
procedure SetComponentBorder(c: TControl; colorr: integer);
begin
with TShape.Create(c) do begin
Parent:=c.Parent;
Top:=c.Top-1;
Left:=c.Left-1;
Pen.Color:=colorr;
Width:=c.Width+2;
Height:=c.Height+2;
SendToBack;
end;
end;А вот здесь собственно говорю, какой компонент в какой цвет закрашивать. Как здесь сделать цикл? //цвет один для всех, компонент только label Код:
procedure TForm1.FormCreate(Sender: TObject); ... begin SetComponentBorder(Label1, 9639167); SetComponentBorder(Label2, 9639167); SetComponentBorder(Label3, 9639167); SetComponentBorder(Label4, 9639167); ... |
|
#5
|
|||
|
|||
|
Цитата:
Код:
FindComponent('Edit'+IntToStr(i)) as TEditКод:
FindComponent('Label'+IntToStr(i)) as TLabel |
| Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение: | ||
mpdasa (28.07.2012)
| ||
|
#6
|
|||
|
|||
|
Цитата:
А что мне в самом цикле процедуры написать вместо слов LabelN? Код:
SetComponentBorder(Label1, d); То есть как оформить эту единственную строку цикла? Простите, может очень уж простые вопросы, но в программировании я новичёк. |
|
#7
|
|||
|
|||
|
Цитата:
Код:
var
i: Integer;
begin
for i := 1 to 4 do
begin
SetComponentBorder(FindComponent('Label'+IntToStr(i)) as TLabel, d);
end;
end; |
| Этот пользователь сказал Спасибо MiraLaklamon за это полезное сообщение: | ||
mpdasa (28.07.2012)
| ||