Вниз
Скачать: 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.016 c
7-55861
TarAntul
2003-05-05 05:22
2003.07.17
Как в XP заменить в explorer.exe на свою прогу?


1-55642
DeDok
2003-07-04 09:13
2003.07.17
Toolbar как в Visual.NET


1-55570
Andrey02
2003-07-02 01:37
2003.07.17
Измениить большое количество Excel.Application на WorkBook


11-55484
Ал
2002-11-17 00:43
2003.07.17
Как переопределить функцию в KOL?


14-55742
Кен
2003-07-01 04:55
2003.07.17
Как вы думаете, в какую сторону развивается GLScene ? Чего автор




   Наверх