Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.17;
Скачать: 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 вся ветка

Текущий архив: 2003.07.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
14-55771
Delpher
2003-06-30 12:18
2003.07.17
Oracle или InterBase?


3-55419
Relaxxx
2003-06-24 10:20
2003.07.17
Как выделить програмно нужные строки в DBGrid


7-55875
ng_softman
2003-05-09 10:26
2003.07.17
Как запустить процесс под другим пользователем?


3-55431
Skull
2003-06-23 09:42
2003.07.17
Отчетность в Excel


1-55536
dima_matrix
2003-07-03 21:23
2003.07.17
VC модуль в проекте Delphi