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

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

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

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

    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
    • M Не в сети
      УченикMasterGH Администраторы
      отредактировано 7 апр. 2023 г., 22:06

      Ищем свойства 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
      1 / 1
      • Первое сообщение
        2/2
        Последнее сообщение
      Powered by NodeBB | Contributors
      СeLua[RU] 2025©