Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Collapse
Brand Logo

CELua[RU]

  1. Главная
  2. Программирование
  3. Плагин-строй
  4. CE вывод списка записей и вывод свойств компонентов

CE вывод списка записей и вывод свойств компонентов

Запланировано Прикреплена Закрыта Перенесена Плагин-строй
ce luace plugince componentsuserdata
2 Сообщения 1 Posters 52 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • MasterGHM Не в сети
    MasterGHM Не в сети
    MasterGH Администраторы
    написал в отредактировано MasterGH
    #1

    Бывает полезно посмотреть быстро списки данных и даже поискать что-то в них

    getPropertyList() — возвращает список срок свойств компонента
    showSelectionList() — отображает компонент с поиском этих свойств
    Подробнее смотри документацию.

    Документация
    521c110c-d0f4-43d3-9e83-9a88e110c7c2-изображение.png

    Как пример посмотрим список свойств главной формы и выберем любое свойство

    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 скрипта вот такой диалог появится. Можно искать свойство через ввод текста
    0e3f2131-fdfb-4ed3-8919-62578d090e69-изображение.png

    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 - выбранные файлы в диалоге

    1 ответ Последний ответ
    0
  • MasterGHM Не в сети
    MasterGHM Не в сети
    MasterGH Администраторы
    написал в отредактировано
    #2

    Ищем свойства 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
    1a800863-fb55-46e7-a2b0-b3daed1613af-изображение.png
    Чтобы наглядно было. Свойства эти похожи на свойства из Дельфи. Можно загуглить, они поддробно описываются.

    Берем например свойство цвет. Прочитаем оригинальное и запишем свое любое

    local mainFormCE = getMainForm()
    print(mainFormCE.getColor())
    
    > 536870912 -- в hex-е это 0x20000000. Можно перевести в калькуляторе или через print(string.format("%08X", 536870912))
    

    Случайное свое впишем ради наглядного примера
    mainFormCE.setColor(546484)

    72d5c265-f388-4d4f-b24c-f3dcb46d8f39-изображение.png

    1 ответ Последний ответ
    0

Powered by NodeBB | Contributors
СeLua[RU] 2024©
  • Войти

  • Нет учётной записи? Зарегистрироваться

  • Login or register to search.
  • Первое сообщение
    Последнее сообщение
0
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы