Обсуждение статьи "Графические интерфейсы X: Расширенное управление списками и таблицами. Оптимизация кода (build 7)" - страница 10

 
Anatoli Kazharski:

Почему же нельзя? Можно. Это же класс Вашего MQL-приложения (индикатора или советника). Всё тоже самое.

Получить значение из поля ввода можно вот так:

m_spin_edit1.GetValue()

Нет, Анатолий, Вы меня не правильно поняли, точнее я не верно выразился))) я не спросил, можно или нельзя, а имел ввиду не хотелось бы его (торговый алгоритм) пихать, пусть интерфейс работает отдельно!

А вот что мне действительно интересно, так это как извне класса CProgram, получать эти данные?  А теперь повторюсь, плохо понимаю ООП! Как нужно организовать структуру программы? Как связать советник с интерфейсом, я не могу понять! Все объекты класса CProgram, находятся в подключаемом файле "Menu.mqh", доступа из советника к ним нет, но ведь должно же быть какое-то связующее звено между ними!? Или как его сделать, не подскажите?

 
Viktor Glovluk:

Нет, Анатолий, Вы меня не правильно поняли, точнее я не верно выразился))) я не спросил, можно или нельзя, а имел ввиду не хотелось бы его (торговый алгоритм) пихать, пусть интерфейс работает отдельно!

Я бы делал так. Но если Вам такой вариант не подходит, то делайте нужные члены класса публичными, чтобы иметь к ним доступ. 

 
Anatoli Kazharski:

Я бы делал так. Но если Вам такой вариант не подходит, то делайте нужные члены класса публичными, чтобы иметь к ним доступ. 

Вот я затупок! И Вы не подсказали :)

Можно же публичные методы сделать, для получения нужной инфы, что бы не делать публичными целые поля класса! А в самом советнике, в обработчике событий, по параметру sparam понимать на что было нажатие в интерфейсе, я ведь знаю как я какие кнопки и поля обзывал! Вчера весь день потратил, пытаясь хоть как то изловчиться, а сегодня с утра встал и как осенило! ))

 
как можно удалить определенную строчку в таблице?
 
dantetemp:
как можно удалить определенную строчку в таблице?

На текущий момент только перестроив всю таблицу полностью с помощью метода CTable::Rebuilding() и инициализировав её заново.

В одном из следующих обновлений добавлю метод для удаления отдельного ряда таблицы.  

 
Anatoli Kazharski:

На текущий момент только перестроив всю таблицу полностью с помощью метода CTable::Rebuilding() и инициализировав её заново.

В одном из следующих обновлений добавлю метод для удаления отдельного ряда таблицы.  

супер! а когда примерно будет следующее обновление?
 
dantetemp:
супер! а когда примерно будет следующее обновление?
На этой неделе.
 

Как таблицу обновлять так и не понял...

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

Пытаюсь сначала зачищать её методом Clear(), вылазит ошибка:

 invalid pointer access in 'Element.mqh' (106,70)

Как её обновлять-то? Нигде в статьях не нашёл примера. Во всех статьях таблица заполняется статичными данными.

 
Juer:

Как таблицу обновлять так и не понял...

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

Пытаюсь сначала зачищать её методом Clear(), вылазит ошибка:

Как её обновлять-то? Нигде в статьях не нашёл примера. Во всех статьях таблица заполняется статичными данными.

 
Anatoli Kazharski:

Спасибо. Только там сортировку не учитывает. 

При сортировке строки могут менять свое положение...