Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с компонентом, свойство parent 
:(
    Опции темы
decoder
  Дата 30.6.2004, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: нет
Всего: -1



Значиться, создал я свой компонент(первый!), "вставил" его в пакет dclusr.dpk и, значиться, скомпилировал ентот пакет(скомпилировалось всё нанмально). Жму закладочку Samples, сидит там мой компонент и хитро лыбиться smile.gif . Пытаюсь кинуть его на форму, но вместо того, чтобы получилось ожидаемое(мной), происходит ошибка "Control '' has not parent window"(или где-то так...). С чем это связано, и с чем его едят? smile.gif. И как его(компонент) всё-таки загнать на эту треклятую форму?

Пытался программно вставить.
Код

...
private
  somecomponent: tsomecomponent;
...
somecomponent:= tsomecomponent.create;
with somecomponent begin
parent:=self;
setbounds(x1,y1,x2,y2);
...
- та же ошибка.


Это сообщение отредактировал(а) decoder - 30.6.2004, 19:50
--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
<Spawn>
Дата 1.7.2004, 05:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



decoder Скажи какие методы ты перекрываешь у него.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
decoder
Дата 1.7.2004, 10:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: нет
Всего: -1



paint,resize,create,destroy
--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
decoder
Дата 1.7.2004, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: нет
Всего: -1



Я, значиться, попробовал в коде компонента, в обработчике конструктора написать
Код
self.Parent := TWinControl(AOwner);

После компиляции пакета компонент всё-таки залез на форму и я внезапно придумал множество матерных слов, неведомых доселе smile.gif . Возникает душераздирающаяя ошибка "Delphi выполнила не допустимую операцию и будет закрыта". Подскажите, это связано с вышенаписанной операцией, иль это ошибки в моём коде? withstupid.gif
--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
Calypso
Дата 1.7.2004, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 30.6.2004

Репутация: нет
Всего: нет



wink.gif Мудрено Однако...
cool.gif
PM MAIL   Вверх
<Spawn>
Дата 1.7.2004, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Код то приведи(или хотя бы Create). И от какого класса наследуешься?


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
decoder
Дата 1.7.2004, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: нет
Всего: -1



А я ещё и вышивать умею(это, типа, матроскин сказал smile.gif )...
Добавлено @ 11:22
<Spawn> Мянутачку...

--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
decoder
Дата 1.7.2004, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: нет
Всего: -1



наследуеться от TGraphicControl
Код

constructor TMyComponent.Create(AOwner: TComponent);
begin
 inherited Create(AOwner);
 self.parent := TWinControl(AOwner);
 {дальше идёт заполнение локальных переменных}
 ...
 {далее вызываеться процедура, которая путём долгих извращений, рисует всякую фигню на канве компонента}
end;

procedure TPole.paint;
begin
 inherited paint;
 self.Refresh;
 {рисуеться то же, что и в проседуре в криэйте}
end;

procedure TPole.resize;
begin
 inherited resize;
 width := Round(width / nkl) * nkl;
 height := width;
 self.Refresh;
 {рисуеться то же, что и в проседуре в криэйте}
end;

--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
<Spawn>
Дата 1.7.2004, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



Точно не уверен, но попробуй убрать "процедуру, которая путём долгих извращений, рисует всякую фигню на канве компонента" из конструктора. Если я правильно помню, то на данной стадии инициализация компонента еще не закончена. Если так уж нужен коструктор, то переопределяй CreateWnd и рисуй там(этот метод после конструкора вызывается), а лучше все оставить в Paint, так как при визуализации компонента WM_PAINT ему и так поступит.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
decoder
Дата 1.7.2004, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: нет
Всего: -1



Не, не то... Я в справочке посмотрел, что такое ОнПэйнт и узнал что это событие может программно вызываться с помощью метода Рэфрэш, который я и вызывал в обработке события ОнПэйнт. Ну а в итоге получался бесконечный вызов события ОнПэйнт... withstupid.gif withstupid.gif withstupid.gif
--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
<Spawn>
Дата 1.7.2004, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



decoder С чего ты взял что бесконечный? OnPaint вызывается при получение оконной процедурой сообщения WM_PAINT или при принудительной его посылке. Ты убрал код рисования из Create? На чем будет рисоваться то? Контрол еще не инициализирован в это время.

Это сообщение отредактировал(а) <Spawn> - 1.7.2004, 13:52


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
decoder
Дата 1.7.2004, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 204
Регистрация: 18.5.2004
Где: Харьков(хохол, к сожалению)

Репутация: нет
Всего: -1



А я то думаю: чё это у меня компонент какой-то прозрачный... Попробую...

P.S. А оброботка ОнПэйнта всё-таки бесконечная...
Код

TMyComponent.Paint;
begin
 ...  
 {Вот мы этот пэйнт вызываем}
 self.refresh
 ...
end;

--------------------
Молчать, я вас спрашиваю!
PM MAIL   Вверх
<Spawn>
Дата 1.7.2004, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: 44
Всего: 64



decoder Ааа, ну дак убери этот Refresh:) - он там ни к чему


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0776 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.