51

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Пробую просто создать отдельное пустое приложение и вставить ваш код. Не срабатывает, даёт ошибку
attempt to call method 'SetText'   (a nil value)
С GetText аналогичная ситуация.

52

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

slkumax пишет:

Пробую просто создать отдельное пустое приложение и вставить ваш код. Не срабатывает, даёт ошибку
attempt to call method 'SetText'   (a nil value)
С GetText аналогичная ситуация.

Чей "ваш"? swerg не давал Вам такой код. ))
Эти методы посоветовал sam063rus, никто кроме него не знает откуда они взялись, где живут, и как с ними работать применительно к qvclua. Попробуйте уточнить именно у него. )
Повторю - для Memo НЕТ встроенных в библиотеку методов вывода в файл.
Если Вам ну очень-очень это нужно, выхода у Вас как минимум два:
1. Дописать на Делфи в исходники библиотеки в Memo эти методы, например по образцу SaveToFile из StringGrig.
2. Сохраняйте значение контрола в файл функцией в синтаксисе Lua

53

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Друзья! не надо ссориться!

Я всех рад здесь видеть, будьте, пожалуйста, взаимовежливы, как говорят в автобусах и метро.

54

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Пишу для QVCLua (т.е. для VCLua 0.5, в ней автор сильно переделал обращение к разным методам/свойствам, теперь всё более "по дельфовому"

-- установить полностью новый текст в Memo
logMemo.Lines.Text = "12345"

-- прочитать полностью текст из Memo
message(logMemo.Lines.Text)

Методов SaveFromFile() и LoadFromFile() у TMemo - нет совсем. Постараюсь не забыть добавить, если кому-то надо.

55

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

В общем с данной проблемой уже справился другими методами.
swerg, Вы писали что пользуетесь уже другой более удобной библиотекой, был бы очень благодарен если бы Вы выложили её.

Возникла следующая потребность, какие функции отвечают за "клики" по таблице? Ну т.е я хочу сделать в приводе активный стакан, при клике на который, ставится заявка. Нет ли у кого-либо примеров ?

56

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

И еще один вопрос. Решил часть для удобства работы вынести в отдельные модули и отдельно их сохранить. В этих модулях вроде тоже всё прописываю, они работают, но при этом русские буквы приходят в основную программу и в квик в виде иероглифов
Вот текст модуля полный

require "qvcl"

VCL = vcl



function delete_order(a_num)


      if a_num=="" then
    message("активных заявок нет ",1)
    estz=false
            return

      end

      UNIQ_TRANS_ID = UNIQ_TRANS_ID + 1
EditSlku17.Text=tostring(UNIQ_TRANS_ID)
        Log(1,"Текущий TRANS_ID" ,EditSlku17.Text)
        
      t = {

                  ["CLASSCODE"]=CLASS,

                  ["SECCODE"]=SEC,

                  ["ACTION"]="KILL_ORDER",

                  ["ACCOUNT"]=ACCOUNT,

                  ["TRANS_ID"] = tostring(UNIQ_TRANS_ID),

                  ["ORDER_KEY"]=tostring(a_num)

            }

      res=sendTransaction(t)
p_file:write(os.date().." Снятие заявки номер "..tostring(a_num).." \n")
      message("Удаляем заявку: сообщение "..tostring(res).."; номер "..a_num,1)
      a_num=""
estz=false
end

57

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Вы хотите сказать, что то, что у вас выводится через message() отображается кракозябрами?
Не верю, ибо оно ж у вас просто вот в файле Lua в виде констант текстовых  написано и, как мы видим - читабельно.
Ну либо проверьте в какой кодировке у вас эти файлы сохранены - откройте их через стандартный виндовый Блокнот, например.

58 (2015-01-30 14:46:34 отредактировано slkumax)

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

swerg пишет:

Вы хотите сказать, что то, что у вас выводится через message() отображается кракозябрами?
Не верю, ибо оно ж у вас просто вот в файле Lua в виде констант текстовых  написано и, как мы видим - читабельно.
Ну либо проверьте в какой кодировке у вас эти файлы сохранены - откройте их через стандартный виндовый Блокнот, например.

http://s019.radikal.ru/i603/1501/72/b5095e164861.png

Если все функции сложить с основной файл MaxTrade.Lua то всё будет на русском.
Если функция будет лежать в дочернем MaxTradeHandl.Lua то вот такие крокозябры.

Блокнотом открывается, всё ок.

59

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Я понял: у вас файлы в UTF-8, да еще и с сигнатурой в первых двух байтах) - вот блокнот и отображает их хорошо.
Пересохраните файлы через "Save As..." с явным указанием кодировки (обычно выбирается внизу диалога сохранения), укажите кодировку "Windows 1251"

60

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

swerg пишет:

Я понял: у вас файлы в UTF-8, да еще и с сигнатурой в первых двух байтах) - вот блокнот и отображает их хорошо.
Пересохраните файлы через "Save As..." с явным указанием кодировки (обычно выбирается внизу диалога сохранения), укажите кодировку "Windows 1251"

нету такой кодировки (
ANSI
Unicode
UTF-8 вот варианты которые предлагаются

61

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

ANSI

62

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

swerg пишет:

ANSI

Спасибо! помогло!

63

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

sam063rus, вы сейчас говорите о выводе сообщений куда?

Ради интереса выполните простой скрипт в QUIK из одной строчки, сохранив файл в кодировке UTFw/oBOM, и расскажите результат.

message("Привет")

64

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

sam063rus,
Вы же видите, что файл у вас в кодировке Windows-1251. А я просил сохранить в UTF и запустить.

В библиотеке же vclua 0.3.5.- вообще не надо ничего делать - прото сохранить в utf8-w/oBOM и нормально показывает русские буквы.

А вот здесь вы говорите истинную правду: в оригинальной vclua все строки надо в самом деле передавать в UFT-8 кодировке.

65 (2015-01-31 13:53:24 отредактировано slkumax)

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Поясните пожалуйста, как в данной библиотеке выглядит следующая функция: при клике два раза левой кнопкой мышки по ячейке таблицы, взять цену из этой ячейки и передать её в edit?
Или как в Lazarus найти подобные вещи?

function GetSelectedCell(L: Plua_State): Integer; cdecl; 

как я понимаю это оно? Но пока не могу понять как пользоваться....

66

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Можно ли изменить высоту строки в StringGrid?

67

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Krepysh пишет:

Можно ли изменить высоту строки в StringGrid?

Нашёл:

for i = 1, 6 do hGrid:SetRowHeight(i, 18) end

А можно ли задать высоту для всех строк при создании StringGrid?
Можно ли задать, чтобы ширина колонки автоматически подбиралась под содержимое?

68

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Krepysh пишет:

А можно ли задать высоту для всех строк при создании StringGrid?

hGrid.DefaultRowHeight = 10

Вероятно свойство надо задать до добавления строк.

Krepysh пишет:

Можно ли задать, чтобы ширина колонки автоматически подбиралась под содержимое?

В лазарусе у грида есть методы  AutoSizeColumn(aCol: Integer) и AutoSizeColumns
Похоже, в VCLua они не доступны. Надо будет добавить, возможно полезные.

69

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Так кто нибудь подскажет как клики мышкой по ячейкам таблицы обрабатывать?

70 (2015-02-02 02:07:50 отредактировано Krepysh)

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

swerg пишет:

hGrid.DefaultRowHeight = 10
Вероятно свойство надо задать до добавления строк.

Это свойство я как-то не заметил. Спасибо.

Кстати, свойство Height для некоторых элементов (ComboBox, FileNameEdit, SpinEdit...) не работает.

swerg пишет:

В лазарусе у грида есть методы  AutoSizeColumn(aCol: Integer) и AutoSizeColumns
Похоже, в VCLua они не доступны. Надо будет добавить, возможно полезные.

А есть свойство, которое позволяет изменять ширину колонок пользователем вручную?


Есть задача очистить таблицу. Т.е., не просто очистить значения в ячейках, а удалить колонки или таблицу целиком. Как это можно сделать?
Есть такой метод DeleteColRow(isColumn, index), но я не могу понять, как его использовать.

71

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

slkumax пишет:

Поясните пожалуйста, как в данной библиотеке выглядит следующая функция: при клике два раза левой кнопкой мышки по ячейке таблицы, взять цену из этой ячейки и передать её в edit?

slkumax пишет:

Так кто нибудь подскажет как клики мышкой по ячейкам таблицы обрабатывать?

-- кликаем правой кнопкой мыши на ячейку -> -1
-- кликаем левой кнопкой мыши на ячейку -> -1
-- двойной клик -> переносится текст в Edit (параллельно значение "накручивается", конечно)

VCL = require "qvcl"

mainForm =  VCL.Form( {
              Height = 400, Width = 500, Caption = "Grid cell click",
              Position = "poDefaultPosOnly",
              OnClose = function (sender) is_run=false sender:Release() end
            } )

edit = VCL.Edit( mainForm, { top=0, left=0 } )
edit.Text = ""

grid = VCL.StringGrid(mainForm, {
              top=20, left=0, Height = 300, Width = 400,
              RowCount = 3, AutoEdit = False, FixedCols = 1, FixedRows = 1, Flat = True,
              OnDblClick = function(sender)
                             edit.Text = grid:GetCell(grid:SelectedCell())
                           end,
              OnMouseDown = function (Sender, Button, Shift, x, y)
                              local delta
                              if     Button == "mbLeft" then
                                delta = 1
                              elseif Button == "mbRight" then
                                delta = -1
                              end
                              local c,r = grid:MouseToCell(x, y)
                              grid:SetCell(c, r, tostring(grid:GetCell(c,r) + delta))
                            end
            } )

grid:SetColParams({
  {Width=100, Alignment="taRightJustify", Title={Caption="Col1", Alignment="taCenter"}},
  {Width=100, Alignment="taRightJustify", Title={Caption="Col2", Alignment="taCenter"}},
  {Width=100, Alignment="taRightJustify", Title={Caption="Col3", Alignment="taCenter"}},
})


for c = 1,grid.ColCount-1 do
  for r = 1,grid.RowCount-1 do
    grid:SetCell(c,r,tostring(r*100 + c))
  end
end

mainForm:Show()

is_run = true
function main()
  while is_run do
    sleep(50)
  end
end

function OnStop()
  is_run = false
  mainForm:Release()
end

72

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Krepysh пишет:

Есть задача очистить таблицу. Т.е., не просто очистить значения в ячейках, а удалить колонки или таблицу целиком. Как это можно сделать?

Вот нашёл то, что нужно: для удаления элемента целиком используется метод :Free()

73 (2015-02-03 18:40:53 отредактировано swerg)

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

:Free() - это именно уничтожение объекта.
При этом - важно - Lua переменная не уничтожается, но обращение к ней вызовет падение терминала.

Если честно - то мне не очень понятна задача, по которой таблицу надо создать - а потом полностью удалить. Может достаточно скрыть ее, т.е. сделать невидимой, а потом при надобности опять отобразить?

Можно поподробнее задачу рассказать?

74

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

В зависимости от настроенных параметров (чекбоксов и пр.)  таблица должна иметь определённое количество колонок. Причём изменение параметров приводит к изменению вида таблицы (количества колонок, заголовков, значений ячеек).
Можно было бы просто очищать ячейки и удалять/добавлять колонки, но я не разобрался, как это сделать.
Но, в любом случае, метод :Free() мне пригодится.

75

Re: Визуальный интерфейс QVCLua: обсуждения, замечания, предложения

Krepysh пишет:

А есть свойство, которое позволяет изменять ширину колонок пользователем вручную?

grid.Options = grid.Options .. "goColSizing"   -- позволяет пользователю менять ширину колонок при наличии FixedRows
grid.Options = grid.Options .. "goRowSizing" -- позволяет пользователю менять высоту строк при наличии FixedCols

Если оба свойства хочется добавить - писать надо отдельными строками добавление каждого свойства.