CE вывод списка записей и вывод свойств компонентов
-
Бывает полезно посмотреть быстро списки данных и даже поискать что-то в них
getPropertyList() — возвращает список срок свойств компонента
showSelectionList() — отображает компонент с поиском этих свойств
Подробнее смотри документацию.Документация
Как пример посмотрим список свойств главной формы и выберем любое свойство
local mainForm = getMainForm() local listProperties = getPropertyList(mainForm) local allowCustomInput = false local id, name = showSelectionList("Title", "Caption", listProperties, allowCustomInput) print ('Index: '..id..", Name: "..name) --> Примеры выполнения: --> Index: 55, Name: ShowHint --> Index: 10, Name: Top
После выполнения Lua скрипта вот такой диалог появится. Можно искать свойство через ввод текста
showSelectionList(title, caption, stringlist, allowCustomInput OPTIONAL): integer,string
- Shows a menu with the given list. It returns the linenumber (starting at 0) and the selected string. Linenumber is -1 if the user was allowed to enter custom input
Список строк (Stringlist Class) используют:
createStringlist(): Strings - постой список
getAutoAttachList(): Strings - список имен процессов для автоподключения
getPropertyList(class) : Strings - список свойств
getCommonModuleList(): Strings - список пропускаемых при сканировании модулей
getProcesslist(Strings) - список процессов
getWindowlist(Strings) - список окон
getThreadlist(Strings) - список потоков
Database.Params: Strings - свойство базы данных SQL
ListItem.SubItems: Strings - свойство подстрок в визуальном компоненте списка
ComboBox.Items: Strings - комбобокс
Memo.Lines: Strings - мемо компонент
RadioGroup.Items: Strings - компонент RadioGroup
ListBox.Items: Strings - компонент ListBox
FileDialog.Files: Strings - выбранные файлы в диалоге -
Ищем свойства userData.
UserData в Lua это пользовательский тип. Точно не знаю, но я думаю в документации в CE Lua (celua.txt или здесь на офф. сайте) тип userData у всех классов или большинства классов. Например, проверим, что главная форма CE это userData тип
local mainFormCE = getMainForm() print(type(mainFormCE)) > userdata (вывод из консоли)
Выводим список свойств следующим образом через getmetatable функцию. Метатаблица — это особая таблица свойств Lua-переменной
local mainForm = getMainForm() local listUserData = createStringlist() for k,_ in pairs(getmetatable(mainForm)) do listUserData.add(k) end local allowCustomInput = false local id, name = showSelectionList("Title", "Caption", listUserData, allowCustomInput) print ('Index: '..id..", Name: "..name) listUserData.destroy()
Результат в виде списка свойство переменной mainForm
Чтобы наглядно было. Свойства эти похожи на свойства из Дельфи. Можно загуглить, они поддробно описываются.Берем например свойство цвет. Прочитаем оригинальное и запишем свое любое
local mainFormCE = getMainForm() print(mainFormCE.getColor()) > 536870912 -- в hex-е это 0x20000000. Можно перевести в калькуляторе или через print(string.format("%08X", 536870912))
Случайное свое впишем ради наглядного примера
mainFormCE.setColor(546484)