Главная страница
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.013 c
3-55396
rosl
2003-06-23 06:06
2003.07.17
edit


1-55566
MakNik
2003-07-07 10:37
2003.07.17
Задержка


14-55782
stalker780
2003-06-30 13:59
2003.07.17
Пароль юзера из Винды


14-55845
Карелин Артем
2003-07-01 15:36
2003.07.17
Алгоритмы обработки изображений. Где найти описания?


3-55457
Weare
2003-06-12 12:06
2003.07.17
Печать из базы штрих-кода