Вопрос по BaseTrader.IsExportRunning
Atom Ответить
15.06.2010


Добрый день.
Ситуация:
1) Квик запущен и соединен с сервером.
2) Все таблицы настроены. Но открыта совсем другая вкладка.
3) После соединения пытаюсь запустить DDE экспорт
QuikTrader.StartExport()
4) Выдается исключение с меседжем <<Sequence contains no matching
element>>
5) В блоке catch пытаюсь обработать эту ситуацию и корректно закрыть
соединение с Квик.
Для это пишу следующее:

if (Global.Quik != null)
{
if (Global.Quik.IsConnected ==
true)
Global.Quik.Disconnect();

if (Global.Quik.IsExportRunning == true)
Global.Quik.StopExport();

Global.Quik.Dispose();
Global.Quik = null;
}

6) Но вместо того, что бы выдать false, поле
BaseTrader.IsExportRunning выдает true.
Хотя QuikTrader.StartExport() выдало исключение.

Это баг или фича?
То что BaseTrader.IsExportRunning выдает true, несмотря на то что
QuikTrader.StartExport() закончилось с исключением.

Если это фича, то как порекомендуете корректно заканчивать работу с
Quik?

Теги:


Спасибо:




11 Ответов
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.06.2010
Ответить


1. За IsExportRunning спасибо. Теперь возвожу флаг в true после
запуска экспорта, а не до.
2. Закрывать все соединение не нужно с Квиком. Просто перезапустите
еще раз метод StartExport.

Спасибо:

Maxim

Фотография
Дата: 15.06.2010
Ответить


Спасибо. Буду ждать обновления.

Пере запускать StartExport нет резона, так как закладка открыта в
Квике не та.
Надо корректно закрыть соединение, изменить закладку и запустить
заново.

Правильно я понимаю, что реализовать так, что бы DDE стартовало не
зависимо от того, какая закладка сейчас открыта в Квике -- нет
возможности?

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.06.2010
Ответить


1. Зачем для смены закладки нужно закрывать соединение?
2. Есть возможность. А что, так не работает?

Спасибо:

Maxim

Фотография
Дата: 15.06.2010
Ответить


Я понял Ваш вопрос. Просто у меня кнопки соединится с Квик и старт DDE
объединены в одну.
Поэтому если соединится сходу не получается и запустить DDE, то я все
останавливаю и говорю
пользователю что надо исправить, что бы заработало.

Так не работает. Если под так подразумевается запуск DDE, если открыта
не та закладка в Квике.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 15.06.2010
Ответить


Ок, сделать поддержку закладок к следующему билду.

Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.06.2010
Ответить


Проверил на разных закладках - все работает.

Спасибо:

Maxim

Фотография
Дата: 16.06.2010
Ответить


Маленькое уточнение.

<<Проверил на разных закладках - все работает. >>
Вы пробовали подключать DDE, когда открыта другая закладка?

Или подключились по DDE когда открыта нужная закладка, а потом
переключались на другую закладку и все работало?

Второй вариант у меня то же получается.
Не получается первый вариант.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 16.06.2010
Ответить


Я сделал так. Создал две закладки, переместил таблицы инструменты и
заявки во второую закладку. Стартанул ДДЕ по всем таблицам (из первой
и второй). Все пошло. Что я упустил?

Спасибо:

Maxim

Фотография
Дата: 16.06.2010
Ответить


Поэкспериментировал.

Исключение появляется в том случае, если открыта другая вкладка и в
ней развернут на весь экран график.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 17.06.2010
Ответить


Подтверждаю. Сделал фикс - будет в новой версии.

Спасибо:

Tauler

Фотография
Дата: 17.06.2010
Ответить


Вставлю 5 копеек - иногда ругается на отсутвие инструментов или
стаконоа, если соответвующие окны не в фокусе.

Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy