Информационный портал Media Systems & Bear Corp.

Главная Новости Delphi C&C++ Tеория Графов Web-Design Математика Исходники и Проекты Лисп и Пролог Ссылки

Портал :: Программирование под Дельфи
Создание компонент в Run-Time  

 

Представим себе такую ситуацию: необходимо динамически создать рисунок на форме во время выполнения приложения например чтобы на форме появлялся новый рисунок при каждом нажатии на кнопку.(Это и будет нашим примером). В принципе ничего сложного нет. Пусть мы создаем объектик с именем image, для сего мы пишем:
image:=TImage.Create(и у нас просят какой-то AOwner );
И сразу же возникает первый вопрос: Что задавать в качестве параметра AOwner?
В поле AOwner следует указать компонент, который будет отвечать за уничтожение нашего компонента.("Вся сущность свойства АOwner в том, что владелец перед смертью уничтожает (через Free) принадлежащие ему объекты. Таким образом, все зависит от того, кому вы хотите доверить уничтожение созданных форм/компонентов. В частности, если вы сами будете этим заниматься, то AOwner может быть, например, nil.") В нашем случае пусть роль кровавого убийцы выполнит форма: image:=TImage.Create(Form); Честно запускаем приложение ... и что - ничего! Естественно: мы не указали свойство image.parent. Компонент не имеет представление кто его родитель и честно не рисуется. Ну не будем томить его ожиданием: напишем image.parent:=Form;
Теперь пропишем загрузку какого-нибудь рисуночка и наслаждаемся!

Ну и последний вопросик: как навесить на свежесозданный компонент какой-нибудь обработчик. Ну очень просто! Определяем простую процедуру-обработчик (ее синтаксис зависит от типа события), а в родном image пишем:
image.OnClick:=UourProcedure;//Здесь я привел что-то для обработки щелчка.

А здесь я привел тот код, который долгими нашими мучениями выстрадан:
procedure CreateImage(Sender:TObject);
var Image:TImage;
begin
image:TImage.Create(Form);
image.parent:=Form;
image.picture.bitmap.loadfromfile('bitmap.bmp');
image.OnClick:=ProcClick;
image.OnMouseMove:=ProcMouseMove;
end;

 

 
     
  Гостевая книга . Связь с разработчиками: Bear Corporation, Media Studio.  
  Это место для вашей рекламы  

Дизайн: Bear Corner, Inc. & Media Sudio.
Последнее обновление: 24.03.2001.

Rambler's Top100 Rambler's Top100
Hosted by uCoz