Самописный class и ObjectInspector

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Самописный class и ObjectInspector

Сообщение skobanev » 27.02.2019 19:41:18

Добрый.
В общем. Ломаю голову целый день.
1. есть самописный объект.
Код: Выделить всё
type
   ta=class(tPersistent)
  private
    FAnInteger: integer;
  public
  published
    property AnInteger: integer read FAnInteger write FAnInteger;     
end;

Как подключить его в редакторе (не в Run-Time) к штатному инспектору объектов ?
Курю мануалы, но что то не сильно помогает.

Если по русски, то хочется чтобы класс был по дефолту виден в инспекторе объектов, и RTTI компоненты могли его выбирать в инспекторе.

Желательно увидеть рабочий код. Lazarus 1.8.4
skobanev
новенький
 
Сообщения: 33
Зарегистрирован: 24.02.2016 23:55:01
Откуда: Ростов-на-Дону

Re: Самописный class и ObjectInspector

Сообщение iskander » 27.02.2019 20:22:56

skobanev писал(а):RTTI компоненты могли его выбирать в инспекторе.

Желательно по-русски или на примере.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Самописный class и ObjectInspector

Сообщение skobanev » 27.02.2019 20:37:51

iskander писал(а):Желательно по-русски или на примере.

Ссылка на изображение: https://1drv.ms/u/s!Au8IbmCanO9Pg4AAlKwjZJEmqWpDmA
skobanev
новенький
 
Сообщения: 33
Зарегистрирован: 24.02.2016 23:55:01
Откуда: Ростов-на-Дону

Re: Самописный class и ObjectInspector

Сообщение iskander » 27.02.2019 21:01:49

Это называется "добавить в палитру компонентов"(если я правильно понял).
Идете в меню "Пакет" > "Новый пакет" создаете и сохраняете его в удобном месте.
Идете в меню "Пакет" > "Открыть файл пакета" открываете созданный пакет и в редакторе пакетов говорите:
"Добавить" >"Новый файл">"Модуль Паскаля" (примерно такого содержания):
Код: Выделить всё
unit my_ta;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils;

type
   ta=class(tComponent) //TComponent - это важно
  private
    FAnInteger: integer;
  public
  published
    property AnInteger: integer read FAnInteger write FAnInteger;
end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('scobanev', [ta]);
end;

end.

Ставите галку "Зарегистрировать модуль".
Дальше - компилировать - установить. Компонент искать на новой вкладке "scobanev".Всё.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Самописный class и ObjectInspector

Сообщение skobanev » 27.02.2019 22:22:14

Спасибо огромное.
А вопрос еще по теме. Я же могу уже править зарегистрированный компонент ? или мне придется при каждом редактировании класса его заного регистрировать?
skobanev
новенький
 
Сообщения: 33
Зарегистрирован: 24.02.2016 23:55:01
Откуда: Ростов-на-Дону

Re: Самописный class и ObjectInspector

Сообщение iskander » 27.02.2019 22:32:30

skobanev писал(а):или мне придется при каждом редактировании класса его заного регистрировать?

Все гораздо хуже, если редактирование подразумевает добавление/удаление published свойств, то
придется заново пересобирать Лазарь. Если я правильно путаю, конечно.

upd: по-идее, если компонент еще не сохранен в файле формы, то все должно обойтись.
Последний раз редактировалось iskander 27.02.2019 22:52:11, всего редактировалось 1 раз.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: Самописный class и ObjectInspector

Сообщение skobanev » 27.02.2019 22:36:01

Ок. Спасибо большое
skobanev
новенький
 
Сообщения: 33
Зарегистрирован: 24.02.2016 23:55:01
Откуда: Ростов-на-Дону

Re: Самописный class и ObjectInspector

Сообщение zoltanleo » 01.03.2019 00:02:45

iskander писал(а):Все гораздо хуже, если редактирование подразумевает добавление/удаление published свойств, то
придется заново пересобирать Лазарь. Если я правильно путаю, конечно.

Не должно. Насколько я помню, ставится (регистрируется) компонент один раз, но после изменения кода каждый раз требуется перекомпиляция проекта компонента, чтобы новые свойства отображались корректно.
Аватара пользователя
zoltanleo
постоялец
 
Сообщения: 457
Зарегистрирован: 17.10.2013 10:55:01


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46

Рейтинг@Mail.ru