Помогите, пожалуйста, StartDde ругается

Помогите, пожалуйста, StartDde ругается
Atom
11.07.2010
Garry


Решил перейти с версии 1.8 на 2.1 но при старте DDE выдается исключение: "Нет информации о главном окне Quik.Возможно, было неуспешное подключение." При этом примеры из 2.1 работают. Verifer только ошибку о колонке Статус в таблице инструментов, что она должна имет индекс 4. Но при этом примеры то работают, а точно такой же код у меня в проекте не работает. Может где-то что-то упустил, не знаю куда и смотреть. Ссылки все из проекта удалил, библиотеки тоже все заменил, все ошибки поправил. Вот код кнопки подключения.

private void button1_Click(object sender, EventArgs e) { if (!_isConnected) { if (globalsett1.quickpath.IsEmpty()) MessageBox.Show("Путь к Quik не указан"); else { if (this.Trader == null) { // создаем шлюз

                   try
                    {
                        this.Trader = new

QuikTrader(globalsett1.quickpath) ; var columns = this.Trader.SecuritiesTable.Columns;

columns[columns.IndexOf(DdeSecurityColumns.LastTradeTime)] = DdeSecurityColumns.LastChangeTime;

columns.Add(DdeSecurityColumns.MinStepPrice);

                   this.Trader.NewSecurities += securities =>

treeView1.BeginInvoke((Action)(()=> { tree_sec_add(securities); tree_view_refresh(); }));

                   this.Trader.SecuritiesChanged += securities =>

dataGridView1.BeginInvoke((Action)(() => { grid_refresh(); })); // создаем менеджер переподключения (будет автоматически соединяться // каждые 10 секунд, если шлюз потеряется связь с сервером) _reConnectionManager = new ReConnectionManager(this.Trader, new Range[0], TimeSpan.FromSeconds(10)); _reConnectionManager.ConnectionRestored += () => { MessageBox.Show("Соединение восстановлено"); //Thread.Sleep(20 * 1000); this.Trader.Reconnect(); StartDde(); //this.Trader.IsAsyncMode = true;

                   };
                    this.Trader.ConnectionError += error =>

MessageBox.Show("Соединение с Quik потеряно, предпринимается попытка перподключения"); this.Trader.Connect(); StartDde(); //this.Trader.IsAsyncMode = true; // возводим флаг, что соединение установлено (происходит автоматически при создании шлюза) _isConnected = true; this.button1.Text = "Отключиться"; } catch (Exception a) { MessageBox.Show(a.Message.ToString()); this.Trader.Dispose(); this.Trader = null; } } else

                   try
                    {

                       this.Trader.Connect();
                        //this.Trader.IsAsyncMode = true;
                        StartDde();
                        _isConnected = true;
                        this.button1.Text = "Отключиться";
                    }
                    catch (Exception b)
                    {
                        MessageBox.Show(b.Message.ToString());
                        this.Trader.Dispose();
                        this.Trader = null;
                    }

           }
        }
        else
        {
            try
            {
                this.Trader.Disconnect();
                StopDde();
                _isConnected = false;
                this.button1.Text = "Соединиться";
            }
            catch (Exception c)
            {
                MessageBox.Show(c.Message.ToString());
                this.Trader.Dispose();
            }
        }
    }

private void StartDde() { _isDdeStarted = true; this.Trader.StartDde(); }

   private void StopDde()
    {
        this.Trader.StopDde();
        _isDdeStarted = false;
    }

При старте StartDde() выдается исключение. Помогите пожалуйста советом!


Теги:


Спасибо:


Garry

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


В дебаргере посмотрел quik соединяется, this.Trader.StartDde(); выдает исключение. При этом этот же quik с этими же настройками стартует DDE, если запускать из примера в 2.1

Спасибо:

Garry

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


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

Спасибо:


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

loading
clippy