Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
ВнизСоздание своих компонент - технический вопрос Найти похожие ветки
← →
Franzy (2003-07-03 19:57) [0]Собрался я тут написать свой собственный компонент и тут же столкнулся со следующей технической трудностью. Я в плане поиска ошибок предпочитаю способ "белого ящика", т.е. процесс дебаггинга у меня идет параллельно с написанием кода: добавил кусок, тут же запустил, проверил, правильно ли работает. С "просто классами" такая штука проходит без проблем, а вот с компонентами... Ведь компонент - это такая штука, которую надо зарегистрировать на панели самих дельфей, потом, ИМХО, создать пробную прогу, поместить компонент на нее и затем уже проверить, как компонент работает... Я так понял, как в коде компонента что-то меняешь меняешь, нужно будет его снова регистрировать, опять бросать его на форму и т.д.... Эдак я запарюсь быстро!
Дельфями я занимаюсь буквально несколько дней (до этого кодил исключительно в паскале и на Яве), поэтому не успел еще во всем разобраться. Народ, кто сам создавал компоненты, поделитесь, плиз, опытом!
← →
AlexRush (2003-07-03 20:03) [1]Когда пишется новый компонент, он оформляется как "просто класс", а при дебаге создается динамически. А уже потом добавляешь в модуль ф-ю Register, создаешь packege и ставишь.
← →
Anatoly Podgoretsky (2003-07-03 20:04) [2]Регистрация не обязательна и ее желательно отлажить до момента окончания отладки, что бы не портить среду. А вот для самой отладки достаточно включить модуль в проект (потом убрать).
Это про рантайм, а вот дизайн тайм уже без помещения в палитру так не сделать.
← →
Franzy (2003-07-03 20:38) [3]Трабл в том, что лично я делаю потомка PaintBoxа, и когда пытаюсь обращаться с ним как с классом, возникает такая дрянь: вызываю метод canvasа (например, moveto), и это приводит к ран-тайм ошибке.
Конкретно:
box:=TMyPaintBox.create(form1);
box.align:=alClient;
box.canvas.moveto(1,1); // это строка вызывает ран-тайм ошибку
//component has no parent window
Это странно, ибо владелец бокса - форм1... :(
← →
Serginio (2003-07-03 20:50) [4]Владелец (Owner) Form1 а
Родитель (Parent) кто???
← →
Юрий Зотов (2003-07-03 20:52) [5]После создания:
Box.Parent := Form1;
Но везде в методах класса TForm1 лучше вместо Form1 использовать Self.
P.S.
Владелец (Owner) и родительское окно (Parent) - вещи разные.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.07.17;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c