CELua[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

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

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

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

      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 Не в сети
        MasterGH Администраторы
        отредактировано

        Ищем свойства 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

        • 1 / 1
        • Первое сообщение
          Последнее сообщение
        Powered by NodeBB | Contributors
        СeLua[RU] 2025©