![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Массивы объектов [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];