Список форумов Trading tools Trading tools
?нструменты для торговли на FORTS
 

На сайт ttools.ru
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы  RSS-Подписка на форумRSS-Подписка на форум   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Помогите программисту-чайнику!
На страницу Пред.  1, 2, 3, 4, 5  След.
 
Начать новую тему   Ответить на тему    Список форумов Trading tools -> QuikOrdersDOM SDK
Предыдущая тема :: Следующая тема  
Автор Сообщение
majo
Наш человек


Зарегистрирован: 19.12.2009
Сообщения: 872
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Авг 14, 2011 7:38 pm    Заголовок сообщения: Ответить с цитатой

Эх Embarassed . Вот даже как то морально тяжело, после такого подробного описания Fortisa, сказать, что у меня по прежнему не получается получить значение таблицы всех сделок в мою форму.

Вроде все сделал, но где то ошибка, которую самостоятельно мне обнаружить не удается. Написал вот такой код:
Код:

unit uAtLibMain;

interface
 uses uATLibrary,
      SysUtils,Dialogs,Forms,Unit1,StdCtrls ;

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
function AT_LIB_CYCLE: Cardinal ; stdcall;
function AT_LIB_DONE: Cardinal ; stdcall;
function AT_LIB_ABOUT: Cardinal; stdcall;
function AT_LIB_SETUP: Cardinal ; stdcall;

var
 R : TLibInitialRecord ;
 Form1 : Tform1;
 Nsd,Err : Cardinal;
 Sd_Inf: PTradeInfo;
 Sd_Price: Double;
 Label1 : TLabel;
 Str : string;

implementation


function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
 begin
  R:=T ;
  Application.CreateForm(Tform1, Form1);
  Form1.Show;

  Nsd:= 5;
  New(Sd_Inf);
  Err := R.fATLibGetTradeInfo(Nsd,Sd_Inf);
  Sd_Price := Sd_Inf.Price;
  Str := FloatToStrF(Sd_Price, ffFixed,5,5);

 end ;

function AT_LIB_CYCLE: Cardinal ; stdcall;
begin

end ;

function AT_LIB_DONE: Cardinal ; stdcall;
 begin
  {}
 end ;

function AT_LIB_SETUP: Cardinal ; stdcall;
 begin
  MessageDlg('Здесь должно быть окно настроек',mtInformation,[mbOK],0);

 end ;

function AT_LIB_ABOUT: Cardinal; stdcall;
 var
  S : String;
begin
  S:='Пример модуля автотрейдинга '#13#10'для QuikOrdersDOM'#13#10;
  ShowMessage(S);
 end ;

end.


Причем сначала переменную Str я не вставлял и сразу присваивал
Код:
FloatToStrF(Sd_Price, ffFixed,5,5);


Однако форма оставалась мертва и в поле Label1 ничего не отображалось.

Тогда я решил пойти на хитрость и попробовать вывести результат с помощью нажатия кнопки вывод.
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;



type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var

Form1: TForm1;
Sd_Price: Double;
implementation
uses
uAtLibMain,uATLibrary;
{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := ' привет '+ uAtLibMain.Str;
end;

end.


Но результат оказался не такой какой я ожидал.



Тоесть значение переменной оказывается 0. Хотя в таблице всех сделок стоит другая цифра.

Возможно переменная Sd_Price не получает значение.

Буду пробовать с помощью оператора IF THEN узнать какое возвращаемое значение получает aTradeInfo.

Если я правильно понял, то надо составить код для проверки возвращаемого значения как то так:
Код:
IF aTradeInfo = 0 Then begin { запустить вывод сообщения что все нормально в форму } Else { вывести сообщение, что данные не получены }


Постораюсь обнаружить ошибку самостоятельно, но буду рад любой наводящей подсказке Wink
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Fortis



Зарегистрирован: 11.05.2010
Сообщения: 99
Откуда: Сибири матушки

СообщениеДобавлено: Пн Авг 15, 2011 11:47 am    Заголовок сообщения: Ответить с цитатой

Первое на что бросаются глаза по коду.

Цитата:
R : TLibInitialRecord ;
Form1 : Tform1;
Nsd,Err : Cardinal;
Sd_Inf: PTradeInfo;
Sd_Price: Double;
Label1 : TLabel;
Выделенное красным, не нужно.

Цитата:
Nsd:= 5;
New(Sd_Inf);
Err := R.fATLibGetTradeInfo(Nsd,Sd_Inf);
Sd_Price := Sd_Inf.Price;
Str := FloatToStrF(Sd_Price, ffFixed,5,5);
Dispose(Sd_Inf);
Выделенное красным, нужно добавить. Выделили память через New(), потом нужно освободить память Dispose().

? третьте, введенные вами глобальные переменные, не обязательно быть глобальными, можно сделать локальными.

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

Поэтому строку "Str := FloatToStrF(Sd_Price, ffFixed,5,5); " можно записать проще "Str:=FloatToStr(Sd_Price);", или еще проще:
Form1.label1.Caption:=FloatToStr(Sd_Inf.Price);

?того получаем примерно такое:
Цитата:

(...)
var
R : TLibInitialRecord ;

implementation

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
var
Nsd,Err : Cardinal;
Sd_Inf: PTradeInfo;
Sd_Price: Double;
// Str : string;

begin
R:=T ;
Application.CreateForm(Tform1, Form1);
Form1.Show;

Nsd:= 5;
New(Sd_Inf);
Err := R.fATLibGetTradeInfo(Nsd,Sd_Inf);
Sd_Price := Sd_Inf.Price;
Form1.Label1.Caption:=FloatToStr(Sd_Price);
// или Form1.Label1.Caption:=FloatToStr(Sd_Inf.Price);
Dispose(Sd_Inf);
end ;

(...)
Не пробовал, но все должно работать.

Цитата:
Если я правильно понял, то надо составить код для проверки возвращаемого значения как то так:
IF aTradeInfo = 0 Then begin { запустить вывод сообщения что все нормально в форму } Else { вывести сообщение, что данные не получены }
Да, можно и так.

Домашнее задание:
Выведите на форму поле ввода с кнопкой и четырьмя метками(label). Вводишь в поле номер сделки, нажимаешь кнопку, а программа выдает тебе информацию о сделки: время сделки, цену, количество, направление(купили\продали). Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
majo
Наш человек


Зарегистрирован: 19.12.2009
Сообщения: 872
Откуда: Санкт-Петербург

СообщениеДобавлено: Сб Авг 27, 2011 10:57 pm    Заголовок сообщения: Ответить с цитатой

Домашнее задание завалил Embarassed Замучился выводить цену в форму. Сначала получилось вывести, но я начал развивать проект и экспериментировать с кнопками и результат пропал. Теперь снова пытаюсь вывести цену в форму, но почему то выводится вот такое число:


Код у меня вот такой:
Код:
unit uAtLibMain;

interface
 uses uATLibrary,
      SysUtils,Dialogs,Forms,Unit1 ;

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
function AT_LIB_CYCLE: Cardinal ; stdcall;
function AT_LIB_DONE: Cardinal ; stdcall;
function AT_LIB_ABOUT: Cardinal; stdcall;
function AT_LIB_SETUP: Cardinal ; stdcall;

var
 R : TLibInitialRecord ;

implementation



function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
var
Nsd,Err : Cardinal;
Sd_Inf: PTradeInfo;
Sd_Price: Double;
 begin
R:=T ;
Application.CreateForm(Tform1, Form1);
Form1.Show;

Nsd:= 5;
New(Sd_Inf);
Err := R.fATLibGetTradeInfo(Nsd,Sd_Inf);
Sd_Price := Sd_Inf.Price;
Form1.label1.Caption:=FloatToStr(Sd_Inf.Price);
Dispose(Sd_Inf);


 end ;

function AT_LIB_CYCLE: Cardinal ; stdcall;
 begin

 end ;

function AT_LIB_DONE: Cardinal ; stdcall;
 begin
  {}
 end ;

function AT_LIB_SETUP: Cardinal ; stdcall;
 begin
  MessageDlg('Здесь должно быть окно настроек',mtInformation,[mbOK],0);

 end ;

function AT_LIB_ABOUT: Cardinal; stdcall;
 var
  S : String;
 begin
  S:='Пример модуля автотрейдинга '#13#10'для QuikOrdersDOM'#13#10;
  ShowMessage(S) ;
 end ;

end.


Тут еще попробовал вывести на форму другие данные.
Кроме цены, попытался вывести количество типа integer. ? тикер.
Но результат примерно такойже:

Нижние символы это такой тикер получается.
Код получился вот такой:
Код:
unit uAtLibMain;

interface
 uses uATLibrary,
      SysUtils,Dialogs,Forms,Unit1 ;

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
function AT_LIB_CYCLE: Cardinal ; stdcall;
function AT_LIB_DONE: Cardinal ; stdcall;
function AT_LIB_ABOUT: Cardinal; stdcall;
function AT_LIB_SETUP: Cardinal ; stdcall;

var
 R : TLibInitialRecord ;

implementation



function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
var
Nsd,Err : Cardinal;
Sd_Inf: PTradeInfo;
Sd_Quantity : integer;
Sd_Price : Double;
SecTicker: TCharArr20;
Sd_Ticker : string;
begin
R:=T ;
Application.CreateForm(Tform1, Form1);
Form1.Show;

Nsd:=3;
New(Sd_Inf);
Err := R.fATLibGetTradeInfo(Nsd,Sd_Inf);
Sd_Quantity := Sd_Inf.Quantity;
Sd_Price:= Sd_Inf.Price;
Sd_Ticker:= SecTicker;


Form1.label1.Caption:= ' Количество: ' +IntToStr(Sd_Quantity)+#13
+ ' Цена: '+ FloatToStr(Sd_Inf.Price)
+ #13 + Sd_Ticker;

Dispose(Sd_Inf);
end ;


Тут еще такой вопрос появился... Хотел попробовать вместо формы, задействовать консоль и посмотреть как программа работает в консольном приложении. Подскажите пожалуйста как вывести значение переменной из модуля uAtLibMain в консоль? ?ли мне надо в самом модуле проекта писать код?
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Danila
Site Admin


Зарегистрирован: 24.07.2009
Сообщения: 837

СообщениеДобавлено: Вс Авг 28, 2011 6:41 pm    Заголовок сообщения: Ответить с цитатой

Сергей,

по коду так если сходу ничего неправильного не заметил. А таблица всех сделок открыта в квике? там есть 6 сделок?
Про консоль в правильном направлении мыслишь, у меня свои роботы все бесформенные, сообщения вывожу в отдельный log-файл, это лучше, чем консоль. функции вывода как в файл так и в консоль write и writeln
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Fortis



Зарегистрирован: 11.05.2010
Сообщения: 99
Откуда: Сибири матушки

СообщениеДобавлено: Вс Авг 28, 2011 7:24 pm    Заголовок сообщения: Ответить с цитатой

Только что проверил оба кода - оба отработали и корректно вывели данные.
Единственное, я не понял вот эту строку:
Sd_Ticker:= SecTicker;
Если ты пытаешься вывести тикер из:
Цитата:
TSecInfo = packed record // информация о бумаге
Idx : integer ; //индекс бумаги в QUIK.
SecTicker, // тикер
SecClass, // класс
SecBaseActive, // базовый актив
SecISIN : TCharArr20; // ISIN-код
PriceStep : Cardinal ; // шаг цены
Precision : Cardinal ; // точность
Expiration : TCharArr20 ; // дата экспирации
LotSize : Cardinal ; // размер лота
end ;
То конечно же ничего не получится. Во-первых, данная функция( R.fATLibGetTradeInfo(Nsd,Sd_Inf) ) не выдает таких данных, а во-вторых, эти данные выводятся через другую структуру.

Как уже отписался Данила, нужно проверить действительно ли открыта таблица всех сделок и она заполнена. Например если подключиться в выходной день, то данные могут обнулиться.
Ты написал что экспериментировал с кнопкой. Если это не весь код, и есть еще что-то через что проходят данные и выводятся, нужно просмотреть тот участок кода.

Про консоль соглашусь с Данилой. Я правда не вывожу в файл, а вывожу на форму все необходимые мне значения переменных при поиске ошибки.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
majo
Наш человек


Зарегистрирован: 19.12.2009
Сообщения: 872
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Авг 28, 2011 9:33 pm    Заголовок сообщения: Ответить с цитатой

Danila писал(а):
по коду так если сходу ничего неправильного не заметил. А таблица всех сделок открыта в квике? там есть 6 сделок?


Да я таблицу постоянно перед глазами держу, все есть и 6 и даже больше, как то один раз получилось вывести верное значение, а потом опять такие числа пошли. Еще вариант попробовать при работающем квике проверить, но это не должно быть влияющим фактором.


Danila писал(а):
Про консоль в правильном направлении мыслишь, у меня свои роботы все бесформенные, сообщения вывожу в отдельный log-файл, это лучше, чем консоль. функции вывода как в файл так и в консоль write и writeln


Спасибо за совет! Обязательно воспользуюсь! Просто я кансоль решил проверить, чтобы она у меня переменные запрашивала и я вручную их вводил бы. Заодно и проверил как программа работает. Впрочем в логфайле тоже такая возможность есть, ведь программа может и из логфайла переменные брать. Вобщем обязательно возьму на вооружение.

Есть подозрение, что я как то не корректно компилирую, но с компиляцией вроде ничего сложного нет...
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
majo
Наш человек


Зарегистрирован: 19.12.2009
Сообщения: 872
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Авг 28, 2011 10:09 pm    Заголовок сообщения: Ответить с цитатой

Fortis писал(а):
Как уже отписался Данила, нужно проверить действительно ли открыта таблица всех сделок и она заполнена. Например если подключиться в выходной день, то данные могут обнулиться.
Ты написал что экспериментировал с кнопкой. Если это не весь код, и есть еще что-то через что проходят данные и выводятся, нужно просмотреть тот участок кода.


Нет таблица вроде нормально показывает. Единственно попробую добыть эти значения из работающего квика, может там какой то сбой при выключенном?


В проекте у меня подключено три модуля.
Первый модуль проекта:
Код:
library srcedit;

{ Important note about DLL memory management: ShareMem must be the
  first unit in your library's USES clause AND your project's (select
  Project-View Source) USES clause if your DLL exports any procedures or
  functions that pass strings as parameters or function results. This
  applies to all strings passed to and from your DLL--even those that
  are nested in records and classes. ShareMem is the interface unit to
  the BORLNDMM.DLL shared memory manager, which must be deployed along
  with your DLL. To avoid using BORLNDMM.DLL, pass string information
  using PChar or ShortString parameters. }

uses
  SysUtils,
  Classes,
  uATLibrary in 'uATLibrary.pas',
  uAtLibMain in 'uAtLibMain.pas',
  Unit1 in 'Unit1.pas' {Form1};

{$R *.res}



exports
 AT_LIB_INIT    name 'AT_LIB_INIT',
 AT_LIB_CYCLE   name 'AT_LIB_CYCLE',
 AT_LIB_DONE    name 'AT_LIB_DONE',
 AT_LIB_SETUP   name 'AT_LIB_SETUP',
 AT_LIB_ABOUT   name 'AT_LIB_ABOUT' ;




begin
end.


Второй модуль библиотеки, я его не менял, слава богу Wink , поэтому приводить не буду.
Третий модуль в котором основной код прописан:
Код:
unit uAtLibMain;

interface
 uses uATLibrary,
      SysUtils,Dialogs,Forms,Unit1,StdCtrls ;

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
function AT_LIB_CYCLE: Cardinal ; stdcall;
function AT_LIB_DONE: Cardinal ; stdcall;
function AT_LIB_ABOUT: Cardinal; stdcall;
function AT_LIB_SETUP: Cardinal ; stdcall;

var
 R : TLibInitialRecord ;

implementation



function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
var
Nsd,Err : Cardinal;
Sd_Inf: PTradeInfo;
Sd_Quantity : integer;
Sd_Price : Double;

begin
R:=T ;
Application.CreateForm(Tform1, Form1);
Form1.Show;

Nsd:=5;
New(Sd_Inf);
Err := R.fATLibGetTradeInfo(Nsd,Sd_Inf);
Sd_Quantity := Sd_Inf.Quantity;
Sd_Price:= Sd_Inf.Price;



Form1.label1.Caption:= ' Количество: ' +IntToStr(Sd_Inf.Quantity)+#13
+ ' Цена: '+ FloatToStr(Sd_Inf.Price);

Dispose(Sd_Inf);
end ;

function AT_LIB_CYCLE: Cardinal ; stdcall;
 begin

 end ;

function AT_LIB_DONE: Cardinal ; stdcall;
 begin
  {}
 end ;

function AT_LIB_SETUP: Cardinal ; stdcall;
 begin
  MessageDlg('Здесь должно быть окно настроек',mtInformation,[mbOK],0);

 end ;

function AT_LIB_ABOUT: Cardinal; stdcall;
 var
  S : String;
 begin
  S:='Пример модуля автотрейдинга '#13#10'для QuikOrdersDOM'#13#10;
  ShowMessage(S) ;
 end ;

end.


? третий Unit1 в котором я ничего не менял:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.


Вобщем то надежда на то, что все написано верно, поэтому отпишусь завтра как на рабочем квике все обкатаю.

Просто у меня вот такой точно код уже отработал. Все правильно показал. Но к сожалению я его не сохранил и начал над ним дальше экспериментировать. Теперь постараюсь удачный проект сохранять на всякий случай, чтобы таблицу всех сделок тестировать. Может и правда в ней причина? Laughing
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
majo
Наш человек


Зарегистрирован: 19.12.2009
Сообщения: 872
Откуда: Санкт-Петербург

СообщениеДобавлено: Сб Сен 10, 2011 9:43 pm    Заголовок сообщения: Ответить с цитатой

Все равно не получается почему то цену вывести. Просто не понимаю как устранить проблему.
Постоянно вылетает какое то левое число:


Причем откуда оно берется я понять не могу. Откуда то оно ведь берется? Значит переменная принимает значение какого то реально существующего числа?
Хотя если бы число с плавающей запятой отражало фактическое число но с нулями я бы мог понять. А откуда может браться абсолютно левое число то?)))

Ладно попробую заняться вводом и выводом значений в лог-файл. Там и попробую все значения переменных посмотреть. Решение все равно найдется).
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Danila
Site Admin


Зарегистрирован: 24.07.2009
Сообщения: 837

СообщениеДобавлено: Сб Сен 10, 2011 10:12 pm    Заголовок сообщения: Ответить с цитатой

У тебя строка вывода
Код:
Form1.label1.Caption:= ' Количество: ' +IntToStr(Sd_Inf.Quantity)+#13
+ ' Цена: '+ FloatToStr(Sd_Inf.Price);
?
Тогда видимо ты переприсваеваешь label1.Caption где-то в другом месте. Даже если в переменных мусор, текст то куда делся
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
majo
Наш человек


Зарегистрирован: 19.12.2009
Сообщения: 872
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Сен 11, 2011 4:26 pm    Заголовок сообщения: Ответить с цитатой

Danila писал(а):
У тебя строка вывода
Код:
Form1.label1.Caption:= ' Количество: ' +IntToStr(Sd_Inf.Quantity)+#13
+ ' Цена: '+ FloatToStr(Sd_Inf.Price);
?
Тогда видимо ты переприсваеваешь label1.Caption где-то в другом месте. Даже если в переменных мусор, текст то куда делся


Нет это я новый чистый код написал в новом чистом проекте:
Код:
unit uAtLibMain;

interface
 uses uATLibrary,
      SysUtils,Dialogs,Forms,Unit1 ;

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
function AT_LIB_CYCLE: Cardinal ; stdcall;
function AT_LIB_DONE: Cardinal ; stdcall;
function AT_LIB_ABOUT: Cardinal; stdcall;
function AT_LIB_SETUP: Cardinal ; stdcall;

var
 R : TLibInitialRecord ;

implementation


function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
var
Nsd,Err: Cardinal;
Sd_Inf: PTradeInfo;
Sd_Price: Double;
 begin
  R:=T ;
  Application.CreateForm(Tform1, Form1);
  Form1.Show;

  Nsd:= 5;
  New(Sd_Inf);
  Err:= R.fATLibGetTradeInfo(Nsd,Sd_Inf);
  Sd_Price:= Sd_Inf.Price;
  Form1.Label1.Caption:= FloatToStrF(Sd_Price,ffFixed,5,5);
  Dispose(Sd_Inf);


 end ;


Просто хотел проверить может где то в прошлых проектах ошибка была.

Но результат всегда один и тот же.

Это второй вариант кода с форматированием. Первый без форматирования тоже выдает число ниоткуда как и раньше.
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Danila
Site Admin


Зарегистрирован: 24.07.2009
Сообщения: 837

СообщениеДобавлено: Вс Сен 11, 2011 7:14 pm    Заголовок сообщения: Ответить с цитатой

попробуй этот кусок
Код:

  Nsd:= 5;
  New(Sd_Inf);
  Err:= R.fATLibGetTradeInfo(Nsd,Sd_Inf);
  Sd_Price:= Sd_Inf.Price;
  Form1.Label1.Caption:= FloatToStrF(Sd_Price,ffFixed,5,5);
  Dispose(Sd_Inf);

перенести в AT_LIB_CYCLE
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Fortis



Зарегистрирован: 11.05.2010
Сообщения: 99
Откуда: Сибири матушки

СообщениеДобавлено: Вс Сен 11, 2011 9:23 pm    Заголовок сообщения: Ответить с цитатой

?нтересная штука, ошибок нет, а ошибка есть. Majo, я бы еще порекомендовал внимательно просмотреть код в Unit1, на предмет наличия там кода типа label1.caption:=траляля, или какие-нибудь арифметические операции с переменной Sd_Price.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
majo
Наш человек


Зарегистрирован: 19.12.2009
Сообщения: 872
Откуда: Санкт-Петербург

СообщениеДобавлено: Вс Сен 11, 2011 10:45 pm    Заголовок сообщения: Ответить с цитатой

Fortis писал(а):
?нтересная штука, ошибок нет, а ошибка есть. Majo, я бы еще порекомендовал внимательно просмотреть код в Unit1, на предмет наличия там кода типа label1.caption:=траляля, или какие-нибудь арифметические операции с переменной Sd_Price.


Unit1 я вообще оставил в неприкосновенности) Там добавлен код, который получился при создании формы и добавлении компонента label1. Больше в код я не вмешивался). Но может надо было прописать в нем ссылки на другие модули в разделе uses? Я уже не знаю что придумать. У меня как то получилось вывести правильное число, но я уже не помню какие манипуляции для этого делал)))
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Fortis



Зарегистрирован: 11.05.2010
Сообщения: 99
Откуда: Сибири матушки

СообщениеДобавлено: Ср Сен 14, 2011 6:26 pm    Заголовок сообщения: Ответить с цитатой

Вышли мне на Lovemy07@bk.ru проект свой. Посмотрю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Fortis



Зарегистрирован: 11.05.2010
Сообщения: 99
Откуда: Сибири матушки

СообщениеДобавлено: Пт Сен 16, 2011 8:06 pm    Заголовок сообщения: Ответить с цитатой

Получил ваш проект. Очень удивило что данные действительно выдавались как вы писали выше. Но ошибку таки нашел Smile

Вы внесли изменения в файл uATLibrary.pas, предполагаю что не нарочно. У вас отсутствует часть кода:
Цитата:
PTradeInfo = ^TTradeInfo ;

TOwnTradeInfo = packed record
N,
OrderN : Int64 ;
SecIdx : Cardinal ;
Account : TCharArr20 ;
TradeDT : TDateTime;
Price : double ;
Quantity : Cardinal ;
OrderDirection : TATOrderDirection ;
Volume : Double ;
end;

POwnTradeInfo = ^TOwnTradeInfo ;



TOrderInfo = packed record // информация о заявке
Выделенное красным отсутствует. Подозреваю, что вы что-то выделяли когда искали в коде и случайно нажали например пробел удалив часть кода.

Обновите этот файл из дистрибутива QOD`a в свой проект и все заработает. Smile
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Trading tools -> QuikOrdersDOM SDK Часовой пояс: GMT + 3
На страницу Пред.  1, 2, 3, 4, 5  След.
Страница 4 из 5

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB


Яндекс.Метрика