Как создать свою форму (окно) и разместить на ней элементы формы (чекбокс, список, кнопка, поле для ввода и тд)

Страницы: 1
RSS
Как создать свою форму (окно) и разместить на ней элементы формы (чекбокс, список, кнопка, поле для ввода и тд), Создание новых элементов интерфейса
 
Добрый день.
Возникла задача создать внутри QUIK собственных окон и форм с последующим размещением на них стандартных элементов форм (кнопки, текстовый label, список, поле для ввода и тд)
Затем заполнять динамически эти элементы формы своими данными и обрабатывать события щелчков на кнопки.
Возможно ли это и куда копать ?
 
Здравствуйте,
Возможно но только через сторонние библиотеки вроде wx, vc или iup
 
Спасибо. Воспользовался вашим советом и решил попробовать iup
1. Зашел на страницу https://sourceforge.net/projects/iup/files/3.18/Tools%20Executables/Lua51/
2. Скачал архив iup-3.18-Lua51_Win32_bin.zip
3. Вытащил из него три файла
  • iup.dll
  • iuplua51.dll
  • lua5.1.dll
4. Поместил их в папку QUIK
5. Создал тестовый lua-файл
Скрытый текст
6. Запустил этот файл в QUIK - работает. Появилось окно
7. Но при попытке закрыть полученное окно (крестиком в правом верхнем углу) приложение QUIK крашится
8. Отладчик написал
Код
Необработанное исключение по адресу 0x1A635EF0 в info.exe: 0xC0000005: нарушение прав доступа при исполнении по адресу 0x1A635EF0.
С чем это может быть связано ?
Цитата
 
Нашел альтернативный способ с помощью библиотеки qvcl
и кажется это то, что надо
 
Цитата
mdbm написал:
4. Поместил их в папку QUIK

В терминале уже есть своя библиотека lua5.1.dll ее менять категорически нельзя!

Переместите файлы в отдельную папку, а файл lua5.1.dll который был в терминале верните обратно.

Далее измените код следующим образом:
Скрытый текст



Делаем акцент что IUP не является нашим продуктом, поэтому вопросы касающиеся самого IUP лучше адресовать на форум посвященный IUP
 
Спасибо. Вернул родной lua5.1.dll на родину)
 
При использовании iup, если хотите в потоке main делать что-то ещё, а не только показывать окна и формы, стоит писать примерно так:
Код
    while not interrupted do
        iup.LoopStep() -- обеспечивает работу GUI
        doSomeTrading() -- вычисление сигналов, постановка заявок
    end
Вызов функции iup.MainLoop() лишает этой возможности.

При таком подходе, к сожалению, при выводе диалоговых окон и popup-меню работа программы приостанавливается: пока окно или меню на экране, doSomeTranding() не вызывается.

Выходит, что как-то можно пользоваться iup, но не всеми его возможностями. Так будет до тех пор, пока в qlua не появится возможность будет запустить отдельный вычислительный поток и там вызывать iup.LoopStep().
 
_sk_,
Не так сложно написать отдельную .dll, которая будет создавать отдельный Lua-поток и запускать его в новом системном потоке.
НО! Этот созданный поток нужно будет аккуратно завершать перед выходом из main, т. к. Quik о нём ничего знать не будет.
Вот поэтому вопрос: действительно ли нужен такой функционал?
 
Цитата
Вот поэтому вопрос: действительно ли нужен такой функционал?

Мне не нужен, я обхожусь только стандартными средствами терминала QUIK и встроенного QLua. Отвечал автору темы, чтобы поделиться имеющимся опытом.
Страницы: 1
Читают тему (гостей: 1)
Наверх