| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
vopros po TPanel on RUN-TIME
...
var P: TPanel; ... implementation ... procedure TForm1.FormCreate(Sender: TObject); var //P: TPanel; i,j,n: Integer; begin Randomize; n:=0; For i:=0 to 6 do begin For j:=0 to 10 do begin P:=TPanel.Create(Self); P.Parent:=Panel1; P.BevelOuter:=bvNone; P.Width:=50; P.Height:=50; P.Left:=j*50; P.Top:=i*50; P.Color:=Random($FFFFFF); Inc(n); P.Caption:=IntToStr(n); end; end; end; Как видно создается много разноцветных панелей. Теперь я хочу во время работы обратится к ним по одному или, на все сразу, например в Timer1Timer поменять цвета, если получится, то должно быть ЦветоМузыка... Я понимаю в процессе разработки не можно ловить то, что создается в процессе выполнения... Но как создать Timer (не сам компонент, это ясно, а его процедуру), который будет работать и делать то, что я прикажу после выполнения? |
|
|
# 2 |
|
Advanced Member
Регистрация: 08.08.2002
Адрес: Nab. Chelny, Tatarstan
Сообщения: 447
![]() ![]() ![]() |
Один из вариантов. Создаешь динамический массив (или если заранее знаешь кол-во панелей, то статический) и задаешь его тип TPanel;
Var arrPanel : array of TPanel; Begin SetLength(arrPanel,PanelCount); //panelcount - кол-во панелей {создаешь панели} For i:=0 to PanelCount-1 do Begin ArrPanel[i]:=TPanel.create; //ну и так далее End; End; Потом обращешься к панелям как к массиву т.е. arrPanel[i].Color:=clRed; // это в с таймере. Ну понял наверное что я имел ввиду
__________________
-=Nomen est Omen=- |
|
|