Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.131 c
4-55895
hammich
2003-05-14 12:03
2003.07.17
Что не так в процедуре ? ПОДСКАЖИТЕ она эмулирует щелчок мыши


8-55660
skiph
2003-03-26 12:07
2003.07.17
Прозрачный фон рисунка


3-55392
Alexander Vasjuk
2003-06-18 13:43
2003.07.17
TDbf V6.3 - MasterFields не устанавливается


6-55679
Fotog
2003-04-13 21:53
2003.07.17
TserverSocet


1-55575
Nucl
2003-07-02 19:54
2003.07.17
Как принудительно вызвать появление хинта у контрола ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский