|
Вопрос # 998/ вопрос решён / |
|
Здравствуйте!
на сайте в разделе компоненты ксть компонент редактирование записи в ListBox
как этим компонентом пользоваться и возможно ли его установить. в архиве только файл .pas
 |
Вопрос задал: 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)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|