|
|
|
| Здравствуйте!
Создаю объекты :
(Builder 6)
//конструкторы
TEdit ***MyEdit;
TLabel ***MyLabel;
....
MyEdit = new TEdit **[n];
MyLabel = new TLabel **[n];
for(int i=0; i<2; i++)
{
MyEdit[i] = new TEdit*[n];
MyLabel[i] = new TLabel*[n];
}
for(int i=0; i<2; i++)
{
for(int j=0; j<n; j++)
{
MyLabel[i][j] = new TLabel(this);
MyEdit[i][j] = new TEdit(this);
MyLabel[i][j]->Parent = Form1;
MyEdit[i][j]->Parent = Form1;
MyLabel[i][j]->AutoSize = true;
MyLabel[i][j]->Top = j*Form1->Height/n/1.5 + 65;
MyLabel[i][j]->Left = 20;
MyEdit[i][j]->Top = x = MyLabel[i][j]->Top + 15;
MyEdit[i][j]->Left = i*Form1->Width/2 + 20;
MyEdit[i][j]->Width = 50;
MyEdit[i][j]->Height = 17;
MyEdit[i][j]->MaxLength = 3;
}
}
|
Добраться до строк, введенных в эти объекты я так понимаю нужно определив обработчик, типа
MyEdit[i][j]->OnChange = MyEdChange;
...
|
потом функцию void __fastcall...
вроде все так... !?
Но не пойму как функцию описать,
как в этой функции обращаться к этим объектам ( MyEdit[i][j] ) ?
Подскажите, очень прошу :) растолкуйте...научите...
Спасибо! | |
|
|
|
|
|
|
|
для: mehelson
(29.11.2007 в 22:47)
| | У всех объектов имеется свойствов Tag в который обычно помещают уникальный номер динамического объекта и идентифицируют объект имеено по нему. | |
|
|
|
|
|
|
|
для: mehelson
(29.11.2007 в 22:47)
| | Кроме того, в обработчике вам по прежнему будут доступны многомерные массивы MyLabel и MyEdit. | |
|
|
|
|
|
|
|
для: cheops
(30.11.2007 в 03:06)
| | Спасибо !
ну все-таки не совсем понятно
вот к примеру так...
void __fastcall Form1::Change(TObject *Sender)
{
AnsiString param += ((TEdit*)->Sender)->Text; // только для примера
}
|
каким образом обратиться к конкретному объекту ?
не совсем понимаю...
т.е. нужно обратиться к свойству Tag вместо Техт ?
...помошник кода в этом случае не помогает :)
Спасибо! | |
|
|
|
|
|
|
|
для: mehelson
(30.11.2007 в 04:00)
| | Преобразуйте двумерный массив в MyEdit в одномерный - будет посложнее, но не очень сильно. В цикле назначте параметру Tag каждого из динамических объектов его индекс
Так как указатель MyEdit у вас глобальный - вы можете обратиться к нему и в обработчике
void __fastcall Form1::Change(TObject *Sender)
{
// ((TEdit*)->Sender)->Tag - содержит индекс
AnsiString param += MyEdit[((TEdit*)->Sender)->Tag]->Text;
} |
Можно и двумерный массив оставить, изменив логику формирования Tag так, чтобы по нему всегда можно было однозначно узнать оба индекса. | |
|
|
|
|
|
|
|
для: cheops
(01.12.2007 в 04:38)
| | Ясно!
Спасибо! | |
|
|
|