Вниз
Скачать: CL | DM;

Создание своих компонент - технический вопрос   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.012 c
1-55572
VaS
2003-07-02 17:03
2003.07.17
AV при компиляции


8-55659
Dankin
2003-03-27 03:08
2003.07.17
PDX формат в Delphi. (Изображение Kodak Cineon)


6-55704
Opera
2003-05-07 13:28
2003.07.17
Браузер


6-55694
Python
2003-05-13 17:11
2003.07.17
Какой протокол использовать?


3-55391
Alexander Vasjuk
2003-06-20 13:12
2003.07.17
TIBDataSet: Проблема с генератором




   Наверх