Lazarus

Other Languages => Russian => Topic started by: WinterSilence on August 26, 2019, 11:17:06 am

Title: Как получить список компонентов?
Post by: WinterSilence on August 26, 2019, 11:17:06 am
Каким образом получить список установленных в Lazarus компонентов (TEdit, TLabel и т.д.)? Для компонентов нужен список публичных свойств, методов и событий. Данные нужны что   автоматом сгенерировать классы компонентов для https://github.com/gabrielrcouto/php-gui
Я оочень давно не писал на ObjectPascal/Delphi (c 7 версии) т.ч. не пинайте сильно.
Title: Re: Как получить список компонентов?
Post by: sash on August 31, 2019, 12:10:38 pm
Что значит "установленных в Lazarus"? Речь про IDE, или про твою программу?
Title: Re: Как получить список компонентов?
Post by: julkas on August 31, 2019, 05:30:11 pm
Что значит "установленных в Lazarus"? Речь про IDE, или про твою программу?
Спинным мозгом чувствую -
речь идёт об IDE.
Title: Re: Как получить список компонентов?
Post by: CynicRus 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 (https://github.com/alrieckert/lazarus/blob/master/ide/componentlist.pas) есть код работы с палитрой компонентов, но весь прикол в том что палитра компонентов не существует в рамках приложения. Следовательно этот список можно получить либо распарсив соответствующий XML в конфиге, либо...Либо написав свое расширение IDE, которое этот список выведет в рамках IDE.
Title: Re: Как получить список компонентов?
Post by: WinterSilence on September 08, 2019, 11:00:03 pm
распарсив соответствующий XML в конфиге
с парсингом  никаких проблем, мне бы этот xml получить, как это можно сделать? И по получению списка публичных методов/свойств что посоветуете?
Title: Re: Как получить список компонентов?
Post by: WinterSilence on September 08, 2019, 11:03:27 pm
Спинным мозгом чувствую -
речь идёт об IDE.
а lazarus это не только ide?
Title: Re: Как получить список компонентов?
Post by: sash on September 09, 2019, 10:13:54 am
а lazarus это не только ide?
Формально - это только IDE, но языковая практика имеет массовые случаи использования в значении "программа, написанная в Lazarus".
Кстати Delphi - это уже точно язык (программирования).
Title: Re: Как получить список компонентов?
Post by: CynicRus on September 10, 2019, 06:33:59 am
распарсив соответствующий XML в конфиге
с парсингом  никаких проблем, мне бы этот xml получить, как это можно сделать? И по получению списка публичных методов/свойств что посоветуете?

Так я привел модуль, откуда стартовать. Там Cntrl + click выведет вас на загрузку палитры установленых компонентов из XML. А список публичных методов и свойств - тут только один путь RTTI.
Title: Re: Как получить список компонентов?
Post by: WinterSilence on September 11, 2019, 11:49:00 pm
а lazarus это не только ide?
Формально - это только IDE, но языковая практика имеет массовые случаи использования в значении "программа, написанная в Lazarus".
Кстати Delphi - это уже точно язык (программирования).
и лазарус и делфи это среды разработки, но естественно между языком и средой нужен какой-то мостик в виде стандартов/интерфейсов/классов, поэтому и появились термины в духе "программа, написанная в Lazarus". На самом деле определить довольно просто: если лазарус не добавляет в паскаль новые языковые конструкции, то это точно не расширение языка :)
Title: Re: Как получить список компонентов?
Post by: WinterSilence 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?