Recent

Author Topic: Как получить список компонентов?  (Read 4395 times)

WinterSilence

  • Newbie
  • Posts: 6
Как получить список компонентов?
« on: August 26, 2019, 11:17:06 am »
Каким образом получить список установленных в Lazarus компонентов (TEdit, TLabel и т.д.)? Для компонентов нужен список публичных свойств, методов и событий. Данные нужны что   автоматом сгенерировать классы компонентов для https://github.com/gabrielrcouto/php-gui
Я оочень давно не писал на ObjectPascal/Delphi (c 7 версии) т.ч. не пинайте сильно.

sash

  • Sr. Member
  • ****
  • Posts: 366
Re: Как получить список компонентов?
« Reply #1 on: August 31, 2019, 12:10:38 pm »
Что значит "установленных в Lazarus"? Речь про IDE, или про твою программу?
Lazarus 2.0.10 FPC 3.2.0 x86_64-linux-gtk2 @ Ubuntu 20.04 XFCE

julkas

  • Guest
Re: Как получить список компонентов?
« Reply #2 on: August 31, 2019, 05:30:11 pm »
Что значит "установленных в Lazarus"? Речь про IDE, или про твою программу?
Спинным мозгом чувствую -
речь идёт об IDE.

CynicRus

  • New Member
  • *
  • Posts: 49
Re: Как получить список компонентов?
« Reply #3 on: September 06, 2019, 10:22:32 pm »
Каким образом получить список установленных в Lazarus компонентов (TEdit, TLabel и т.д.)? Для компонентов нужен список публичных свойств, методов и событий. Данные нужны что   автоматом сгенерировать классы компонентов для https://github.com/gabrielrcouto/php-gui
Я оочень давно не писал на ObjectPascal/Delphi (c 7 версии) т.ч. не пинайте сильно.

Там прям в гите папка Lazarus, в ней класс треда который делает что нужно, при этом классы зарегистрированы вручную через RegisterClass. В юните  https://github.com/alrieckert/lazarus/blob/master/ide/componentlist.pas есть код работы с палитрой компонентов, но весь прикол в том что палитра компонентов не существует в рамках приложения. Следовательно этот список можно получить либо распарсив соответствующий XML в конфиге, либо...Либо написав свое расширение IDE, которое этот список выведет в рамках IDE.

WinterSilence

  • Newbie
  • Posts: 6
Re: Как получить список компонентов?
« Reply #4 on: September 08, 2019, 11:00:03 pm »
распарсив соответствующий XML в конфиге
с парсингом  никаких проблем, мне бы этот xml получить, как это можно сделать? И по получению списка публичных методов/свойств что посоветуете?

WinterSilence

  • Newbie
  • Posts: 6
Re: Как получить список компонентов?
« Reply #5 on: September 08, 2019, 11:03:27 pm »
Спинным мозгом чувствую -
речь идёт об IDE.
а lazarus это не только ide?

sash

  • Sr. Member
  • ****
  • Posts: 366
Re: Как получить список компонентов?
« Reply #6 on: September 09, 2019, 10:13:54 am »
а lazarus это не только ide?
Формально - это только IDE, но языковая практика имеет массовые случаи использования в значении "программа, написанная в Lazarus".
Кстати Delphi - это уже точно язык (программирования).
Lazarus 2.0.10 FPC 3.2.0 x86_64-linux-gtk2 @ Ubuntu 20.04 XFCE

CynicRus

  • New Member
  • *
  • Posts: 49
Re: Как получить список компонентов?
« Reply #7 on: September 10, 2019, 06:33:59 am »
распарсив соответствующий XML в конфиге
с парсингом  никаких проблем, мне бы этот xml получить, как это можно сделать? И по получению списка публичных методов/свойств что посоветуете?

Так я привел модуль, откуда стартовать. Там Cntrl + click выведет вас на загрузку палитры установленых компонентов из XML. А список публичных методов и свойств - тут только один путь RTTI.

WinterSilence

  • Newbie
  • Posts: 6
Re: Как получить список компонентов?
« Reply #8 on: September 11, 2019, 11:49:00 pm »
а lazarus это не только ide?
Формально - это только IDE, но языковая практика имеет массовые случаи использования в значении "программа, написанная в Lazarus".
Кстати Delphi - это уже точно язык (программирования).
и лазарус и делфи это среды разработки, но естественно между языком и средой нужен какой-то мостик в виде стандартов/интерфейсов/классов, поэтому и появились термины в духе "программа, написанная в Lazarus". На самом деле определить довольно просто: если лазарус не добавляет в паскаль новые языковые конструкции, то это точно не расширение языка :)

WinterSilence

  • Newbie
  • Posts: 6
Re: Как получить список компонентов?
« Reply #9 on: September 12, 2019, 12:13:15 am »
Так я привел модуль, откуда стартовать. Там Cntrl + click выведет вас на загрузку палитры установленых компонентов из XML. А список публичных методов и свойств - тут только один путь RTTI.
Вы забываете простой факт- я полнейший нуб в лазарусе, если натруднит, то можно как с дауном который знает только турбо паскаль, да и то это было давно и неправда.
Quote
Там Cntrl + click выведет вас на загрузку палитры установленых компонентов из XML
я открываю componentlist.pas, но не понимаю по какому gui элементу/названию делать "Cntrl + click"
Quote
только один путь RTTI
мне попадался в доках метод для получения списка методов класса,  RTTI лазаруса отличается от того что реализован в delphi 6-7?

 

TinyPortal © 2005-2018