Re: Визуальный интерфейс VCLua в QUIK
не слышал о таком
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
QUIK -> DDE → Lua: визуальные библиотеки → Визуальный интерфейс VCLua в QUIK
не слышал о таком
Нашел называется vclua ide попробую отпишусь
Добрый день! Можете подсказать по настройке Lazarus? Пытаюсь скомпилировать/собрать vcl.dll 0.3.5 ([url]http://luaforge.net/projects/vclua/[/url]) в Lasarus 1.4.2 fpc-2.6.4 и ошибка с LazLogger:
C:\Lazarus\lcl\lclproc.pas(32,28) Fatal: Невозможно найти модуль LazLogger, используемый в LCLProc. Убедитесь, что все файлы PPU пакета находятся в его каталоге вывода. PPU в неверном каталоге=C:\Lazarus\components\lazutils\lib\i386-win32\lazlogger.ppu. Удалите пакет "LazUtils"..
Lazarus установлен в C:\Lazarus, проект в C:\vcl, файлы в C:\Lazarus\components\lazutils\lib\i386-win32 есть
[url]http://forum.lazarus.freepascal.org/index.php?topic=18557.0[/url]
Большое спасибо! Ветка по компиляции vcl: [url]http://forum.lazarus.freepascal.org/index.php?topic=18614.0[/url]
Появилась другая ошибка: Error: Error while compiling resources -> Compile with -vd for more details. Check for duplicates.
На это ответ не нашел
-
-
День добрый!
К сожалению, до изучения Паскаль у меня дело пока не дошло, хотя и планирую ))
Подскажите пожалуйста, какие аргументы готов принять
StringGrid:AddRow()
пока опытным путем установлено, что нужно передать хотя бы пустую таблицу, иначе не запустится
StringGrid:AddRow({})
в таблицу можно сразу набить значения контролов? Или наполнение ячеек?
Или научите пожалуйста считывать перечень и дефолты контролов из таких методов.
Спасибо.
Вот например
StringGrid::AddCol(
{
Width=70,
Alignment="taCenter",
Color=RGB(255,255,245),
Title={Caption="Тикер", Alignment="taCenter"}
}
)
принимает кучу параметров на контролы. А AddRow() игнорирует, например, Color и Height...
-
из документации к VCLua 0.3.5:
Method Call
AddCol AddCol([index,] table)
AddRow index AddRow([index])
фишка в том, что в реальности AddRow ждет таблицу.
AddRow() - не работает
AddRow({}) - работает
qwcl от swerg, на базе VCLua 0.5, если не ошибаюсь. Вряд ли swerg что-то кардинально менял в AddRow()
-
Погуглил, действительно, он ждет аргумент - позицию для вставки строки.
AddRow(1) - добавит строку второй по счету. Работает. Никаких других аргументов для контролов похоже внутрь не упаковать. Ну да ладно...
Как-то жаль и странно что он по дефолту AddRow() не добавляет строку в начало или конец таблицы.
-
Свойства у строки - не подразумеваются по смыслу.
Если у колонок разные свойства (потому как есть заголовок и всё такое).
А строки - это просто однотипные строки данных.
Для вставки можно использовать
new_row = Grid:AddRow() -- new_row <- номер добавленной строки
Grid:LoadRowFromTable(new_row, {"1", "2", "3"})
Количество данных в таблице - не больше, чем столбцов! иначе рванёт, если я верно понял код (не проверял)
(есть смысл подправить, кстати, какой смысл от этого взрыва в этом месте).
Свойства у строк могут быть разными, например можно изменить высоту отдельной строки
grid:SetRowHeight(3,3)
а значит явно есть контрол в свойствах. Какой именно - не знаю, но записано будет вот так
<rows rowcount="1">
<row1 index="3" height="3"/>
</rows>
Поэтому и возник интерес сразу задать некоторые свойства при добавлении строки, например цвет, шрифт.
Вот ещё вопрос, может быть подскажете, не могу подобрать синтаксис передачи сразу двух свойств шрифту
vcl.Label(Form, {Top=5, Left=5, Caption="название", Font={Style="fsBold"}})
Стилю нужно передать одновременно и "fsBold" и "fsItalic".
Спасибо.
Так?
"[fsBold,fsItalic]"
Так?
"[fsBold,fsItalic]"
Работает, спасибо.
Для элемента ComboBox:
1) Как узнать названия всех списков?
2) Можно ли заменить текст отдельного пункта или только через полную замену параметра Items?
Если в цикле с определённой периодичностью происходит замена параметра Text какого-либо элемента, в целях уменьшения нагрузки имеет ли смысл проверять, что элемент уже содержит данный текст?
if control.Text ~= Text then control.Text = Text end
По крайней мере, если элемент содержит передаваемый на него текст, то вызова события OnChange не происходит.
Если в цикле с определённой периодичностью происходит замена параметра Text какого-либо элемента, в целях уменьшения нагрузки имеет ли смысл проверять, что элемент уже содержит данный текст?
if control.Text ~= Text then control.Text = Text end
По крайней мере, если элемент содержит передаваемый на него текст, то вызова события OnChange не происходит.
Проверять смысла нет. Если значение то же, выигрыша во времени нет, т.к. чтение контрола так же ресурсоемко, как и запись. Если значение иное - тратим в 2 раза больше времени. Впрочем, можете замерить чтение и запись.
OnChange срабатывает независимо от содержания обработчика и старых значений на контролах.
OnChange срабатывает независимо от содержания обработчика и старых значений на контролах.
Пари?
Edit = vcl.Edit(MainForm, {OnChange = function (sender) message(tostring(sender.Text)) end})
vcl.Timer(MainForm, {Interval=1000, Enabled=true, OnTimer = function () message('Проверим?') Edit.Text = 'OK' end})
Проверять смысла нет. Если значение то же, выигрыша во времени нет, т.к. чтение контрола так же ресурсоемко, как и запись. Если значение иное - тратим в 2 раза больше времени.
Я исхожу из того, что обычно операции записи более ресурсоёмкие, чем чтение. Соответственно, при большом числе повторяющихся записей можем получить значительную экономию.
Но пример с OnChange говорит о том, что в самой библиотеке есть какие-то проверки. Вопрос - какие?
PS: Кстати, если вручную отправлять на контрол повторяющийся текст, тогда
OnChange срабатывает независимо от содержания обработчика и старых значений на контролах.
GREEN_X5 пишет:OnChange срабатывает независимо от содержания обработчика и старых значений на контролах.
Пари?
Edit = vcl.Edit(MainForm, {OnChange = function (sender) message(tostring(sender.Text)) end}) vcl.Timer(MainForm, {Interval=1000, Enabled=true, OnTimer = function () message('Проверим?') Edit.Text = 'OK' end})
Ничего не понял, что это? Что мы здесь проверяем?! )))
Я сказал - OnChange всегда вызовет обработчик по ссылке и функции. В Вашем примере он вызывает ВСЕГДА при изменении поля.
Тут что-то потаенное в примере? )
ааа, понял, Вы хотите сказать. что если послано такое же значение что и было, то OnChange не вызывается!
Ну, и? Для чего тогда проверять изменение (Ваш первый вопрос)?
Вот это вот зачем?
if control.Text ~= Text then control.Text = Text end
GREEN_X5, если вы не поняли, можете не обращать внимания ))
QUIK -> DDE → Lua: визуальные библиотеки → Визуальный интерфейс VCLua в QUIK
Форум работает на PunBB, при поддержке Informer Technologies, Inc