Показать сообщение отдельно
Старый 26.02.2003, 12:49   #19  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Времени мало, поэтому сделал не много. Здесь я приложил проект - там форма и класс запусай класс.

Несколько пояснений. Вот new() этого класса:

PHP код:
void new(str _formName)
{
   
Args arg = new Args();
   
FormRun formRun;
   ;

   
colCount 0;
   
formName _formName;

   
// Столбцы нужно удалять в том же порядке, в каком они и создавались

   
this.addColumn("int");
   
this.addColumn("int");
   
// ...
   
this.createInit(formName);

   
arg.name(formName);

   
formRun ClassFactory.FormRunClass(arg);
   
formRun.init();
   
formRun.Run();
   
formRun.wait();

   
this.deleteColumn("int");
   
this.deleteColumn("int");
   
// ...

   
this.deleteInit(formName);


Что делает этот метод: в него передается имя формы.

Вот здесь:

PHP код:
   this.addColumn("int"); 
в таблицу на форме добавляются столбцы переданного типа.

P.S. 1. Реализованно только для int, но это легко расширяется.
1а. Класс ищет именно таблицу с именем Table и именно в корне design. В будущем расширяемо.
2. В addColumn происходит перекрытие textChange() для добавляемого столбца.
3. Как я понимаю именно это ты имел в виду здесь :

Цитата:
Давай сделаем так (пока не знаю, какие проблемы возникнут - еще не посмотрел): пусть столбцы добавляются динамически, но добавление регулирет программист (скажем, какой-то метод вызывает).
Затем форма запускается. После закрытия формы все, что в ней насоздавали подчищаем.

За всем этим делом лучше всего наблюдать так: открыть в отдельном окне форму, развернуть ветвь ее методов и контролов в Table и запустить класс. При этом форма откроется, а в АОТ'е будет видно, что в таблице создались контролы, а в форме соответствующие обработчики событий. После закрытия формы, в АОТ'е видно, что все созданное удалилось. Поиграйся(поскролируй) Table и ты увидишь, что для каждого столбца работает свой обработчик событий.

Итог: мы напускаем класс на форму с Table, класс генерит в этом табле кучу всего, запускает форму, после ее закрытия все подчищяет за собой.

Вроде как работает, но это пугает меня - самомодифицирующийся код никогда не отличался надежностью, легкостью сопровождения и отладки

В общем посмотри проект и скажи что думаешь.
Вложения
Тип файла: xpo dem_table.xpo (13.9 Кб, 329 просмотров)