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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2009, 11:40   #1
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
По умолчанию Как создать компонент???

Как создать компонент в ран-тайме (во время выполнения программы) и записать его свойства (Name,Top,Left) и его класс в базу?? Плюс к этому компоненту надо добавить обработчик OnClick и тоже занести в базу.
Уточняю. Есть типо графический редактор а-ля Visio (к примеру). Там берется картинка пользователем и ложится на форму. Так вот позицию и имя этой картинки мне и нужно вычислить и записать. Только я не визио создаю, но принцип тот же. Класс компонента Timage.
В общем запустил чел прогу, создал много картинок на форме, сохранил все ето, а при следующем входе в прогу все его художества из базы подтянулись и на форме отобразились там, где он их оставил..
Программер я начинающий поэтому просьба: если кто знает-отвечайте подробней или мыльте исходник на Thor2007@yandex.ru. Только без спама плиз...
По ракетам и хоккею - Россияне всех сильней!
Ky3Heu, вне форума Ответить с цитированием
Старый 03.04.2009, 11:52   #2
Dj_smart
Капсула от спама
Форумчанин
 
Аватар для Dj_smart
 
Регистрация: 04.03.2008
Сообщений: 779
По умолчанию

Ну, вообщето надо так:
1) Описываете комнонент в разделе var:
Код:
var
  MyComponent:TMyComponentClass;
2) Создаете компонент на основе класса, когда нужно:
Код:
  MyComponent:=TMyComponentClass.Create(nil);
3) Если компонент видимый - нужо задать Parent (объект, на котором размещаете компонент)
Код:
  MyComponent.Parent:=Form1.Parent;
4) И задаете все свойства и методы:
Код:
  MyComponent.Name:='NoName1';
  MyComponent.Top:=40;
  MyComponent.Left:=50;
  MyComponent.OnClick:=Button1Click; // нужно создать процедуру обработки с именем Button1Click
5) По уничтожению формы нужно освобождать компонент:
Код:
  MyComponent.Free;
Вот собственно и вся схема вкратце
зы: На примере кнопки:
Код:
var B:TButton;
begin
  B:=TButton.Create(nil);
  B.Parent:=Form1.Parent;
  B.Caption:='!!!';
  B.OnClick:=Button2Click; // (создайте обработчик по нажатию второй кнопки)
  B.left:=50;
  B.Left:=60;
Если данный ответ не столь конкретен, как Вы желаете его увидеть, возможно необходимо поразмыслить, стоит ли вопрос того, чтобы о нём спрашивать на форуме?
CncFiles.ru - бесплатный файловый хостинг

Последний раз редактировалось Dj_smart; 03.04.2009 в 11:55.
Dj_smart вне форума Ответить с цитированием
Старый 03.04.2009, 17:31   #3
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Немного дополню и поправлю.
если при создании задать Owner-ом форму, то она при уничтожении сома позаботится об уничтожении созданных компонентов
Код:
B:=TButton.Create(Form1);
если компонент должен лежать на форме то
Код:
B.Parent:=Form1;
Для удобства сохранения в базу можно собирать созданные компоненты в TComponentList.
Если будешь сохранять только Timage то не вижу смысла сохранять Класс компонента и Name.
а вот Width и Height (если они не определяются автоматически из вложенного в него изображения) и соответственно запоминать сами изображения (или файлы из которых они беруться)
s.Creator вне форума Ответить с цитированием
Старый 03.04.2009, 22:44   #4
Garfunkel
 
Регистрация: 03.04.2009
Сообщений: 3
По умолчанию

Некорректно использовать имя формы, лучше Self
Код:
 B := TButton.Create(Self);
Garfunkel вне форума Ответить с цитированием
Старый 06.04.2009, 18:46   #5
Ky3Heu,
Пользователь
 
Регистрация: 01.04.2009
Сообщений: 94
По умолчанию

Всем большое СПАСИБОООООО!!!!! )
По ракетам и хоккею - Россияне всех сильней!
Ky3Heu, вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать компонент в ран-тайме (во время выполнения программы) Ky3Heu, Общие вопросы Delphi 2 02.04.2009 12:12
Как динамически создать компонент subsonic Общие вопросы Delphi 2 13.03.2009 15:23
Как создать свой компонент? Д'якон Компоненты Delphi 1 21.05.2008 16:37
Создать компонент в BDS 2006 Баламут Компоненты Delphi 2 08.11.2007 13:06