Показать сообщение отдельно
Старый 11.10.2007, 17:37   #2  
Russland is offline
Russland
MCTS
Аватар для Russland
MCBMSS
 
267 / 116 (4) +++++
Регистрация: 17.10.2005
Адрес: Донеччина, Україна
Ну не знаю...

Одно из решений: допиливание классов DialogField и Dialog
Идея: при добавлении поля в диалоге указывать индекс поля (то бишь аналитику)

В классе Dialog метод addField()
X++:
DialogField addField(
    int         type,
    FieldLabel  label   = '',
    FieldHelp   help    = '',
    ArrayIdx    idx     = 0 //modified for ArrayFields
    )
{
    DialogField DialogField;

    fields += 1;
    DialogField = new DialogField(this,type,fields);
    this.addCtrlDialogField(dialogField.name());

//    dialogField.init(this); //standard
    dialogField.init(this, idx);//modified for ArrayFields

    if (label)
        dialogField.label(label);
    if (help)
        dialogField.helpText(help);

    this.addDialogClass(dialogField);

    return dialogField;
}
В классе DialogField метод init()
X++:
//void init(Dialog  dialog)//standard
void init(Dialog  dialog, ArrayIdx idx=0)//Modified for ArrayFields
{
....
    //Added for ArrayFields -->
    if((idx)&&(idx<=arraysize))
    {
        f = idx;
        arraysize = idx;
    }
    //Added for ArrayFields <--
    while (f <= arraysize)
    {
....
}
Ну и сам вызов теперь
X++:
d.addField(TypeId(Dimension), '', '', 1);
__________________

В глухомани, в лесу Несмотря на красу Дни проводит Лиса Патрикевна. Я никак не пойму Отчего, почему Не пускают куму На деревню