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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2012, 17:29   #1
smolbars
Новичок
Джуниор
 
Регистрация: 04.02.2012
Сообщений: 1
По умолчанию Проблемы с TFRame в своих компонентах

Всем привет! ПРошу помощи может кто знает. Имеется мой компонент представляющий из себя потомка TWincontrol позволяющего создавать на себе (реализовано кодом) на основе запроса пользователей кучу tpanel

На них по замыслу должны класться пользователем потомки TFrame - ну точнее (юзер создает кучу свих фреймов стандартный визард дельфей о нем и речь). И все эти фреймы должны таскаться драг дропом с панели на панель причем и в дизайнтайме тоже

Основная проблема - компонет то мой а проект нет. Мне бы отследить когда юзер создал свой фрейм получить класс этого вфрейма который есть в проекте но его нет в текузей форме зарегать его и оперировать уже с классом. Может кто знает вообще где посмотреть как создается класс от фрейма и от него рисуется объект - что это за визард в дельфях. Их инета выудил только что лежит эта радость в файле pageframeR11d но видимо в d7. в ВЕРСИИ 6 КАК И в той на кторой пишу я - xe -такого файла нет и нет ему подобных pageframe в названии вероятно должно быть.

Вобщем кто поделится инфой где посмотреть исходник этого визарда буду рад.


Я попробовал отследить появление компонента в проекте через хук апишный SetWindowsHookEx

Типо отследить все сообщения createwnd

Но что то не получается. Хотя я делал в коде компонента а надо в длл

Но вообще это не лучший для меня вариант. На notification компонента пробовал


Цитата:
begin
inherited Notification(AComponent, Operation);
if (Operation = TOperation.opInsert) and (TUnivFunc.IsFrameName(AComponent.C lassName)) then
begin
sleep(1000);
SendMessage(handle,Wm_NewFrm_Notif, handle,Tframe(AComponent).Handle);
end;

end;
IsFrameName анализирует есть ли в строке т е имени класса слово tframe - плохой варинат но временный

тож не катит. Изначально обрабатывал на нотификации потом делал через свое собшение все равно не катит - валится на AV

Вообще лучше всего мне сам визард дельфей посмотреть как там вообе реализвано что от класса класс родится при выборе объекта а не сам объект и ка оин рисуют выбор из списка фреймов
smolbars вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TFrame MAZADA Общие вопросы Delphi 3 22.10.2010 00:51
связь в компонентах adoquery BaiAs БД в Delphi 1 07.06.2010 06:59
Анализ текста в компонентах Memo sokla Помощь студентам 4 14.03.2010 00:32
Обработка wm_keydown если на форме присутствует TFrame Oburec Компоненты Delphi 1 13.04.2009 10:01
Неуловимое исключение в Apro компонентах Slaveg123 Работа с сетью в Delphi 0 01.07.2007 00:28