Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Массивы объектов [D6, WinXP]


Бегинер ©   (2002-08-25 21:13:00) 

Доброго времени суток, МАСТЕРА!!!
Такая вот ситуация....создаю несколько MaskEdit"тов таким способом:

SetLength(a, n);
for i:=0 to n-1 do
begin
a[i]:=TMaskEdit.Create(Form1);
a[i].name:="MEdit"+inttostr(i);
a[i].parent:=Form1;
......
end;


Сразу же после этого цикла хочу запустить такой же, создающий столько же UpDown"ов,связанных с MaskEdit"тами, делаю так:


SetLength(b, n);
for i:=0 to n-1 do
begin
b[i]:=TUpDown.Create(Form1);
b[i].parent:=Form1;
b[i].associate:="class"+inttostr(i);//Тут ошибка...говорит, что нужен тип TWinControl вмест String
end;


Как правильно прикрепить UpDown"ы и MaskEdit"ы с одинаковыпи индексами друг к другу?


Бегинер   (2002-08-25 23:38:00) [1]

Да вы прямо АССЫ!!!!


Юрий Зотов   (2002-08-25 23:22:00) [2]

1. А еще лучше ud[i].parent := gr[i].parent. Чтобы не править код, если завтра надумате перетащить контролы куда-то еще.

2. Сделать один общий OnMouseMove для всех нужных контролов:
if Sender is TWinControl then TWinControl(Sender).SetFocus


Бегинер   (2002-08-25 23:12:00) [3]

В предыдуших формах проекта я делал такую фишку для удобства: при наведении на Edit т.е. в обработчике OnMouseMove писал xxxxx.setfocus;.Как в моем массиве сделать так же для каждого объекта?


Бегинер   (2002-08-25 23:05:00) [4]


> Ученик © (25.08.02 22:55)

Спасибочки.....надо завязывать на сегодня....


Ученик   (2002-08-25 22:55:00) [5]

ud[i].parent := m4.Panel1;


Бегинер   (2002-08-25 22:49:00) [6]

Вставил я ВАШ код, создались эти АпДауны, но не ассоциированные.....у меня пременные длинные, но может поверите:
gr: array of TMaskEdit;
ud: array of TUpDown;

SetLength(gr, ng);
SetLength(ud, ng);
for i:=0 to ng-1 do
begin
gr[i]:=TMaskEdit.Create(m4);
gr[i].name:="class"+inttostr(i);
gr[i].parent:=m4.Panel1;
gr[i].text:="1";
gr[i].left:=8;
gr[i].color:=clSkyBlue;
gr[i].height:=24;
gr[i].width:=17;
gr[i].top:=i*24+40;
gr[i].EditMask:="0;1;";
ud[i]:=TUpDown.Create(m4);
ud[i].parent := m4;
ud[i].associate:=gr[i];
end;


Anatoly Podgoretsky   (2002-08-25 22:01:00) [7]

Попробуй b[i].associate:=a[i]


Бегинер   (2002-08-25 21:54:00) [8]

Большое Вам СПАСИБО!!!!


Юрий Зотов   (2002-08-25 21:45:00) [9]

SetLength(a, n);
SetLength(b, n);
for i:= 0 to n-1 do
begin
a[i] := TMaskEdit.Create(Form1);
// a[i].name := "MEdit" + inttostr(i); // Это лишнее.
a[i].parent := Form1;
b[i] := TUpDown.Create(Form1);
b[i].parent := Form1;
b[i].associate := a[i]; // Ссылка, а не имя!!!
......
end;


TTCustomDelphiMaster   (2002-08-25 21:44:00) [10]

b[i].associate := a[i];


Наверх

Титульная страница Поиск, карта сайта Написать письмо