Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 998

/ вопрос решён /

Здравствуйте!
на сайте в разделе компоненты ксть компонент редактирование записи в ListBox
как этим компонентом пользоваться и возможно ли его установить. в архиве только файл .pas

Приложение:
  1.  


wedserg Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: wedserg (статус: Посетитель)
Вопрос отправлен: 24 октября 2007, 10:01
Состояние вопроса: решён, ответов: 2.

Ответ #1. Отвечает эксперт: Feniks

Здравствуйте, wedserg!
Установить этот компонент очень легко. Для этого открываете любой файл пакета (dpk) или создаете новый (а так же можно использовать стандартный в Делфи файл "{Delphi}libdclusr.dpk", пакет пользовательских компонентов). В появившемся окне жмем кнопку Добавить, затем выбираем .pas файл данного компонент. После этого компилируем и билдим пакет. Все, и нужный нам компонент установлен. А что бы определить на какой вкладке он появился, открываем этот .pas и ищем там процедуру:

procedure Register;
begin
  RegisterComponents('Sample', [TsgmEditListBox]);
end;
Первый параметр указывает имя вкладки. В данном случае это 'Sample' и имя класс TsgmEditListBox.
В такой пакет можно сколько угодно добавлять разные компоненты.

Ответ отправил: Feniks (статус: Бакалавр)
Время отправки: 24 октября 2007, 10:39
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Вадим К

Здравствуйте, wedserg!
Существует много случаем, когда устанавливать компонент на палитру нецелесообразно. Например:
- хочеться просто посмотреть на компонент.
- компонент в стадии разработки (тоесть вы сами его разрабатываете и хочеться тестировать, а постоянно переустанавливать - трата времени)
- вы хочеться распространять(продать исходники) программы, а объяснять, как установить один дополнительный компонент - не сильно хочеться. В этом случае лучше применить динамическое создание. Сделать это очень просто.
1) распаковываем компонент в какую-то папку.
2) запускаем делфи и создаём пустой проект.
3) Project -> Add to Progect... (Shift+F11) и добавляем файл(ы) с компонентном к нашему проекту
4) File -> UseUnit... и добавляем юнит с компонентом
5) кликнув дважды по форме заполняем обработчик

procedure TForm1.FormCreate(Sender: TObject);
  var list:TsgmEditListBox;//Добавили объявление.
begin
   list:=TsgmEditListBox.Create(Form1);//создать надо объязательно. удалять объект не надо, форма позаботиться об этом
   list.Parent := Form1;//эта строка обязательна - иначе компонента не увидим.
   List.BoundsRect:=Rect(0,0,100,200);//зададим координаты и размер. можно конечно в 4 строки по желанию писать
   List.Items.Add('One');//это уже спецефичный для данного компонента код
   List.Items.Add('Two');
   List.Items.Add('Three');
   List.Items.Add('Four');
   {Очень удобно использовать компонент JvInspector с библиотеки JVCL (вкладка Jv RunTime Design)
   Одна строка и вы имеете инспектор объекта в приложении. можно поиграться свойствами.}
   JvInspector1.InspectObject := List;
end;
и запускаем программу. Никаких побочных результатов.
Правда замечу, что некоторые компоненты после инсталяции при попытке поставить на форму ругаются на самые разные "болезни". А таким способом практически всегда ставляться.
Правда я нашёл один компонент, который сопротивляется такому испытанию. Это TWebBrowser. У него свойство Parent доступно только для чтения. А если его не установить, то компонент не будет отображаться на форме (что бы компонент отображался на другом компонетне, то нужно просто указать его как родителя). Для такого случая есть решени. заменим строку list.Parent := Form1;
на строку Form1.InsertControl(list);

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 24 октября 2007, 12:06
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 0.

31 января 2011, 19:29: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 21 января 2020, 19:27
Выполнено за 0.03 сек.
Рейтинг@Mail.ru