Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2010, 13:04   #1
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию Создание компонента

Ребята, натолкните на мысль, как создать компонент который бы рисовал на канве формы при ее загрузке (что то типа скин менеджера). Я так понял в компонент нужно передать указатель на канву формы, а потом уже работать с ней, но как?

Последний раз редактировалось nXs; 13.05.2010 в 13:18.
nXs вне форума Ответить с цитированием
Старый 13.05.2010, 16:43   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

что как?
как передать указатель на канву(ссылку на канву(так всетаки вернее))?(компонент и так будет знать кто его родитель(Parent))
или как работать с канвой?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.05.2010, 16:59   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А AlphaSkins взять не проще?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.05.2010, 17:23   #4
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Alpha skins то проще, но охота самому научится такие вещи делать с рисованием кнопки уже разобрался, но не пойму как такое сделать с формой... Я так понял нужно вместо стандартного OnPaint формы, подсунуть свой, но как реализовать с помощью компонента?

А посмотрите пожалуйста этот компонент. Он вроде работает, но в процессе вылазит куча ошибок. Например, при попытке удаления этого компонента с формы вылетает "Invalid pointer operation", и купа 'Acces violation ... Read of adress'. В итоге Delphi слетает...
Вложения
Тип файла: rar NSEProgressBar.rar (1,023 байт, 12 просмотров)

Последний раз редактировалось mihali4; 15.05.2010 в 20:22.
nXs вне форума Ответить с цитированием
Старый 15.05.2010, 19:43   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

ну не знаю, двумя способами добавлял компонент и просто как компонент и подключением через
Код:
 var t: TNSEProgressBar;
...
 t:= TNSEProgressBar.Create(nil);
 t.Parent:= form1;
и удалял с формы по разному, все нормально... среда turbodelphi lite/
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 16.05.2010, 11:26   #6
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Странно, я уже и среду переустановил (юзаю Delphi 7), и все равно та же история... У меня в упор все слетает из-за этого компонента, хотя писал по тому же принципу что и другие(рабочие). Еще пишет часто что "Access violation at adress 40005982 in module rtl70.bpl".

Последний раз редактировалось nXs; 16.05.2010 в 11:36.
nXs вне форума Ответить с цитированием
Старый 16.05.2010, 11:53   #7
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

При беглом просмотре кода настораживает такое приведение:

Код:
    NCanvas:TCanvas;
    //...

NCanvas:=TCanvas.Create;
TControlCanvas(NCanvas).Control := Self;
alexBlack вне форума Ответить с цитированием
Старый 16.05.2010, 12:13   #8
nXs
Форумчанин
 
Регистрация: 26.02.2010
Сообщений: 126
По умолчанию

Спасибо, закоментировал строчку
Код:
TControlCanvas(NCanvas).Control := Self;
и все ок!

А возможно ли содать компонент перед созданием формы?

Последний раз редактировалось nXs; 16.05.2010 в 16:53.
nXs вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание компонента sashchernun Компоненты Delphi 2 01.03.2010 00:10
Динамическое создание компонента из компонента)) Impuls1989 Компоненты Delphi 8 22.10.2009 00:08
Создание компонента Neobrat Компоненты Delphi 3 01.05.2009 09:52
Создание компонента russianstrike Компоненты Delphi 15 01.10.2008 19:22
Создание компонента. Черничный Компоненты Delphi 2 01.06.2008 23:28