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

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

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


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

СообщениеДобавлено: Ср Июл 13, 2011 11:39 pm    Заголовок сообщения: Помогите программисту-чайнику! Ответить с цитатой

Всем привет! Я делаю первые неуверенные шаги на ниве программирования. Хочу в этой ветке делиться своими мыслями и описывать процесс изучения искусства программирования.

Цель этой ветки - шкурная, освоить и подчинить своему интеллекту, qSDK. Надеюсь мои поиски истины и жажда новых знаний, будут полезны не только мне лично. Но и тем кто хочет научиться писать алгоритмы для qSDK.

Вобщем - поехали!


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

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


Но поскольку знаний у меня еще кот наплакал, прошу помочь,в решении этой задачи. Но разумеется не в виде готового решения, а шаг за шагом потихоньку и неспеша Embarassed

Для начала объясните пожалуйста чайнику, как извлекать необходимые данные из квика или как то иначе? Как прописать в программе получение данных из нужного источника?

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


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

СообщениеДобавлено: Чт Июл 14, 2011 9:27 am    Заголовок сообщения: Ответить с цитатой

Начни с малого, сделай модуль с формой, который показывает что-то из QuikOrdersDOM, например информацию о первой заявке в таблице заявок.

?спользуй примеры в дистрибутиве QuikOrdersDOM, и конечно же документацию по qSDK:

http://ttools.ru/?page_id=430#10

будут вопросы - пиши
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
majo
Наш человек


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

СообщениеДобавлено: Чт Июл 14, 2011 5:55 pm    Заголовок сообщения: Ответить с цитатой

Danila писал(а):
Начни с малого, сделай модуль с формой, который показывает что-то из QuikOrdersDOM, например информацию о первой заявке в таблице заявок.

?спользуй примеры в дистрибутиве QuikOrdersDOM, и конечно же документацию по qSDK:

http://ttools.ru/?page_id=430#10

будут вопросы - пиши


Я тоже об этом задумался) Для начала будет круто просто извлечь хоть какую то переменную) Этим и займусь. А дальше по нарастающей. Но цель я себе поставил. Надо знать в каком направлении двигаться.
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Danila
Site Admin


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

СообщениеДобавлено: Чт Июл 14, 2011 9:35 pm    Заголовок сообщения: Ответить с цитатой

majo писал(а):
Danila писал(а):
Начни с малого, сделай модуль с формой, который показывает что-то из QuikOrdersDOM, например информацию о первой заявке в таблице заявок.

?спользуй примеры в дистрибутиве QuikOrdersDOM, и конечно же документацию по qSDK:

http://ttools.ru/?page_id=430#10

будут вопросы - пиши


Я тоже об этом задумался) Для начала будет круто просто извлечь хоть какую то переменную) Этим и займусь. А дальше по нарастающей. Но цель я себе поставил. Надо знать в каком направлении двигаться.

Даже проще сделай - получи текущее количество заявок в таблице. А ты уже разобрался как создать форму, как вывести на нее информацию и как сделать это в dll ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
majo
Наш человек


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

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

Danila писал(а):
majo писал(а):
Danila писал(а):
Начни с малого, сделай модуль с формой, который показывает что-то из QuikOrdersDOM, например информацию о первой заявке в таблице заявок.

?спользуй примеры в дистрибутиве QuikOrdersDOM, и конечно же документацию по qSDK:

http://ttools.ru/?page_id=430#10

будут вопросы - пиши


Я тоже об этом задумался) Для начала будет круто просто извлечь хоть какую то переменную) Этим и займусь. А дальше по нарастающей. Но цель я себе поставил. Надо знать в каком направлении двигаться.

Даже проще сделай - получи текущее количество заявок в таблице. А ты уже разобрался как создать форму, как вывести на нее информацию и как сделать это в dll ?


Данила ты же понимаешь, только начинаю потихоньку разбираться. Еще многое предстоит понять.
Но какие то азы, я уже освоил. Нужна помощь немного причесать инфу которая у меня в голове образовалась.
Несколько программок из учебника я уже скомпилировал. dll впервые начал изучать сегодня. В задачке форма и dll библиотека помещались в одну папку и через форму запускались команды прописанные в библиотеке.
Вот как сделать библиотеку для qSDK я пока не разобрался.
Объясни пожалуйста, мне надо создать только библиотеку с набором функций. Форму мне надо создавать? ?ли qSDK и есть форма?

Если вместе с библиотекой создается форма, то нужно как то прописать запуск формы, после того как из qSDK будет запущена сама библиотека?

Понимаю что мои вопросы наверное запутанны)

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

Например я делаю библиотеку. Мне по идее надо сначала объявить переменные?

Код:
  ? по структуре;
library project1
// начинается вроде так

uses
 SysUtils, dialogs,
 Classes;
// здесь модули правильно указаны?

{$R *.res}

//var or implementation?

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;

function AT_LIB_CYCLE: Cardinal ; stdcall;

function AT_LIB_DONE: Cardinal ; stdcall;

// эти функции идут после какого оператора var или implementation?

BestBuyQuotePP : PPAtQuote ;

Эта команда должна быть как то заранее объявлена?

   


Я может быть хочу перепрыгнуть сразу через несколько ступенек. Но уж такой харрактер))) Поставил цель и бегу впереди паровоза)))

Вобщем если есть такая возможность, может приведешь пример кода библиотеки? У тебя наверняка есть исходники. Если не секрет конечно. ? по структуре программы, помоги пожалуйста. Как правильно прописывать форму в библиотеке или делать форму отдельно со ссылками на библиотеку или в библиотеке должны быть ссылки на форму?

Прости что забросал вопросами, но я и с опционами тебя мучил, ты уже наверно привык))) Я готов и самостоятельно по книгам все освоить, но с помощью профессианального программиста, этот процесс можно ускорить))) Прости за наглость Embarassed
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Danila
Site Admin


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

СообщениеДобавлено: Пт Июл 15, 2011 9:21 am    Заголовок сообщения: Ответить с цитатой

majo писал(а):


Данила ты же понимаешь, только начинаю потихоньку разбираться. Еще многое предстоит понять.
Но какие то азы, я уже освоил. Нужна помощь немного причесать инфу которая у меня в голове образовалась.
Несколько программок из учебника я уже скомпилировал. dll впервые начал изучать сегодня. В задачке форма и dll библиотека помещались в одну папку и через форму запускались команды прописанные в библиотеке.
Вот как сделать библиотеку для qSDK я пока не разобрался.


В папке src дистрибутива QuikOrdersDOM есть исходники для 2х робоов, скомпилируй и запусти любой из них для начала, затем изучи код. Кроме того, в этой папке есть шаблон робота - template, можно начать разработку своего робота, просто переименовав его
Цитата:

Объясни пожалуйста, мне надо создать только библиотеку с набором функций.

Вопрос не понял
Цитата:
Форму мне надо создавать?

В зависимости от того, что ты хочешь делать. если ты выводишь информацию на форму - конечно надо. А так есть роботы, которые спокойно живут без формы.

Цитата:
?ли qSDK и есть форма?

qSDK это не форма, это набор функций для работы с биржевыми данными и транзакциями, а также соглашение о именах и параметрах функций и в каком порядке они могут быть вызваны

Цитата:
Если вместе с библиотекой создается форма, то нужно как то прописать запуск формы, после того как из qSDK будет запущена сама библиотека?


Удобно создавать и показывать форму в AT_LIB_INIT, уничтожать в AT_LIB_DONE, но это как удобно, можно например и в основной функции dll-библиотеки [/quote]


Цитата:

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

Да, форма должна быть сознана в dll. Упрости свою первую задачу до создания формы с меткой с надписью "hello world" в AT_LIB_INIT и уничтожения в AT_LIB_DONE. Когда увидишь свою первую библиотеку автотрейдинга работающей - почувствуешь себя уверенней


Например я делаю библиотеку. Мне по идее надо сначала объявить переменные?
Цитата:

Код:
..   


Посмотри шаблон сделай свою библиотеку на его основе, я думаю, эти вопросы у тебя отвалятся и появятся новые

Цитата:

Я может быть хочу перепрыгнуть сразу через несколько ступенек. Но уж такой харрактер))) Поставил цель и бегу впереди паровоза)))

Вобщем если есть такая возможность, может приведешь пример кода библиотеки? У тебя наверняка есть исходники. Если не секрет конечно. ? по структуре программы, помоги пожалуйста. Как правильно прописывать форму в библиотеке или делать форму отдельно со ссылками на библиотеку или в библиотеке должны быть ссылки на форму?

Прости что забросал вопросами, но я и с опционами тебя мучил, ты уже наверно привык))) Я готов и самостоятельно по книгам все освоить, но с помощью профессианального программиста, этот процесс можно ускорить))) Прости за наглость Embarassed


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


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

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

Данила! Огромное спасибо за подробные ответы, на мои сумбурные вопросы. Несколько вопросов я задал навскидку. Мне нужно было определить направление, в котором предстоит двигаться. Остальные вопросы постараюсь задавать более тщательно. ? не сильно увекаться. Постараюсь уложится в 1-2 вопроса, а остальное буду пытаться понять самостоятельно. Это будет полезно для получения необходимого опыта и навыков.

Danila писал(а):
В папке src дистрибутива QuikOrdersDOM есть исходники для 2х робоов, скомпилируй и запусти любой из них для начала, затем изучи код. Кроме того, в этой папке есть шаблон робота - template, можно начать разработку своего робота, просто переименовав его


Роботов я скомпилировал, но запустить пока не удалось, поскольку квик не работает на выходных, приложения видимо не запускаются на выключенном квике. Но настройки и описание программы запустить удалось. Это мне помогло, лучше понять как работает код.

Danila писал(а):
qSDK это не форма, это набор функций для работы с биржевыми данными и транзакциями, а также соглашение о именах и параметрах функций и в каком порядке они могут быть вызваны


Я хотел уточнить, демо-роботы и шаблон состоят из нескольких частей. Например шаблон состоит из; template.dpr, uAtLibMain.pas, uATLibrary.pas . В отличие от шаблона роботы имеют еще один файл; uEMATrading.pas.

Насколько я понял, template.dpr указывает на экспорт из остальных файлов с расширением .pas .

uAtLibMain.pas - запускает программу, в нем описываются компоненты uses , перечисляются функции - три обязательных и две необязательные. Далее по порядку после оператора(implementation) реализуется последовательно заявленные функции.

uATLibrary.pas - здесь, как я понял перечисленны функции, которые будут использованы в библиотеке.

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

Надеюсь я все правильно понял?

Danila писал(а):
Удобно создавать и показывать форму в AT_LIB_INIT, уничтожать в AT_LIB_DONE, но это как удобно, можно например и в основной функции dll-библиотеки


Вот здесь я немного хотел уточнить. Например я хочу чтобы при запуске библиотеки, появилось сообщение 'Hello world!'.
В инете много примеров написания кода, этой процедуры. ? вроде ничего сложного.

Но мне пока сложно понять как ее запустить в AT_LIB_INIT и уничтожить в AT_LIB_DONE.

Если использовать шаблон из папки scr, то я пока не могу сообразить, как правильно прописать процедуру?

Если взять код из прмера, который я нашел в интернете;
Код:
library MyFirstDLL;
uses
        SysUtils,
        Classes,
        Forms,
        Windows;
procedure HelloWorld(AForm : TForm);
        begin
                MessageBox(AForm.Handle, Hello world!',
                        DLL Message Box', MB_OK or MB_ICONEXCLAMATION);
        end;
exports
        HelloWorld;
begin
end.


То тут вроде все понятно. Но как прописать эту процедуру в шаблоне?

Для начала нужно объявить компоненты Forms и Windows. ?х нужно прописать в главном модуле template.dpr или в uAtLibMain.pas или компоненты нужно добавить в оба модуля?

Далее процедуру, мне нужно вставить в блок функции ;
Код:
function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
 begin
  R:=T ;

 end ;


?ли нужно создать отдельно модуль .pas ? в нем прописать эту процедуру?

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


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

СообщениеДобавлено: Вт Июл 19, 2011 12:20 am    Заголовок сообщения: Ответить с цитатой

Цитата:
Я хотел уточнить, демо-роботы и шаблон состоят из нескольких частей. Например шаблон состоит из; template.dpr, uAtLibMain.pas, uATLibrary.pas . В отличие от шаблона роботы имеют еще один файл; uEMATrading.pas.


uATLibrary.pas - модуль который необходимо включить в любой проект с использованием qSDK. В нем объявлены основные типы данных. Все остальные модули организуются по усмотрению разработчика, как удобно. можно вообще все функции разместить в dpr, но это неудобно и может вызвать некоторые проблемы при развитии проекта.


[quote]
...тут вроде все понятно. Но как прописать эту процедуру в шаблоне?
[quote]


Код:

function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
 begin
  R:=T ;
  frmMain:=TfrmMain.Create(nil);
  ...
 end ;
....

function AT_LIB_DONE: Cardinal ; stdcall;
 begin
  ...
  frmMain.Free ;
  ...
 end ;




Цитата:
Для начала нужно объявить компоненты Forms и Windows. ?х нужно прописать в главном модуле template.dpr или в uAtLibMain.pas или компоненты нужно добавить в оба модуля?


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


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

СообщениеДобавлено: Сб Июл 23, 2011 7:26 pm    Заголовок сообщения: Ответить с цитатой

Вобщем пока безуспешно пытаюсь прописать форму в библиотеку. dll компилируется, qDom ее запускает, но работают только модули

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


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

СообщениеДобавлено: Сб Июл 23, 2011 8:44 pm    Заголовок сообщения: Ответить с цитатой

majo писал(а):
Вобщем пока безуспешно пытаюсь прописать форму в библиотеку. dll компилируется, qDom ее запускает, но работают только модули

напиши подробнее, что ты имеешь ввиду. Не стесняйся приводить код
Цитата:
About и setup. Но буду пытаться запустить. ?ли попробую через about форму запустить.

Ну, ты как-нибудь определись с поставленной себе задачей )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
majo
Наш человек


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

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

[quote="Danila"]
majo писал(а):
Вобщем пока безуспешно пытаюсь прописать форму в библиотеку. dll компилируется, qDom ее запускает, но работают только модули

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

Просто пытаюсь применить разные варианты програмного кода. А на выходных, когда квик выключен похоже не запустить библиотеку?

Может правильный вариант сделал, а просто qDom его не запускает? Ведь на выключенном квике и другие приложения для qDom не запускаются. Например optio indicator. ?ли я ошибаюсь?

Danila писал(а):
Цитата:
About и setup. Но буду пытаться запустить. ?ли попробую через about форму запустить.

Ну, ты как-нибудь определись с поставленной себе задачей )


Нет с задачей я как раз определился) Надо при открытии бибиотеки в qDom, чтобы появилась пустая форма или форма с лейблом.

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


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

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

Вобщем начну все по порядку:

Моя задача, состоит в простом, казалось бы действии. При запуске из qDom, должна появится форма с лейблом 'Hello world'.

Вроде все понятно, но только ничего непонятно)))

Вот картинка формы и открытых модулей в delphi board:



Значит я взял модули uAtLibMain.pas, uATLibrary.pas и добавил их в папку с проектом. Проект назвал CreatForm.dpr, Затем создал форму form1 и сохранил ее в папке с проектом под именем Unit1.pas .

Теперь по порядку привожу листинги всех модулей, кроме uATLibrary.pas .

Листинг1 Creatform:

Код:
library Creatform;

{ 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 '..\newfuter\uATLibrary.pas',
  uAtLibMain in '..\newfuter\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.


Если я правильно понял, здесь ничего менять и добавлять не надо? Здесь только показан путь экспорта из файлов с расширением pas и объявлены функции qDom SDK?

Далее я пытался использовать сначала твой совет и сделал как в твоем примере:

Код:
unit uAtLibMain;

interface
 uses uATLibrary,
      SysUtils,Dialogs, Forms,
      Unit1 In ' Unit1.pas' ;

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
 frmMain,
 R : TLibInitialRecord ;

implementation


function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
 begin
  R:=T ;

  frmMain := TfrmMain.Create(nil);

end ;

function AT_LIB_CYCLE: Cardinal ; stdcall;
 begin

 end ;

function AT_LIB_DONE: Cardinal ; stdcall;
 begin

  frmMain.Free;
  {}
 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.pas , я оставил все без изменений, никакие процедуры не прописывал.

Код:
unit Unit1;

interface

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

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

{$R *.dfm}

implementation

begin

end.


Впрочем пытался прописать процедуру запуска формы :

Код:

begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.


Причем вставлял эту процедуру как в uAtLibMain.pas, так и в код самой формы, но компилятор эту процедуру почему то не захотел пропустить.

Смутно предчувствую, что в моем детище не хватает какого то главного элемента Laughing Может быть не хватает толкового программиста? Wink

Вобщем поэтому решил попробовать запустить форму из функции about, поскольку при выключенном квике, эта функция работает замечательно)))
_________________
C искренним уважением majo
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Danila
Site Admin


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

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

Вот тут неправильно:
Код:

var
 frmMain,
 R : TLibInitialRecord ;


ты объявил переменные frmMain и R с типом TLibInitialRecord.
R правильно, это запись со всеми функциями qSDK,
а frmMain должна иметь тип той формы, которую ты создал (TForm1 скорее всего).

Сделай этот пример и вернись на шаг назад: изучи основы Delphi, что такое типы, какие типы бывают, правила объявления переменных. В этом надо ориентироваться хорошо, иначе ничего толкового не напишешь

Второй вариант создания формы тоже законный. Когда компилятор что-то тебе говорит - читай внимательно. Читай help по этой ошибке или в крайнем случае спрашивай тут. Тебе предстоит научиться находить с ним общий язык )
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
majo
Наш человек


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

СообщениеДобавлено: Вс Июл 24, 2011 12:55 am    Заголовок сообщения: Ответить с цитатой

Danila писал(а):
Вот тут неправильно:
Код:

var
 frmMain,
 R : TLibInitialRecord ;


ты объявил переменные frmMain и R с типом TLibInitialRecord.
R правильно, это запись со всеми функциями qSDK,
а frmMain должна иметь тип той формы, которую ты создал (TForm1 скорее всего).

Сделай этот пример и вернись на шаг назад: изучи основы Delphi, что такое типы, какие типы бывают, правила объявления переменных. В этом надо ориентироваться хорошо, иначе ничего толкового не напишешь

Второй вариант создания формы тоже законный. Когда компилятор что-то тебе говорит - читай внимательно. Читай help по этой ошибке или в крайнем случае спрашивай тут. Тебе предстоит научиться находить с ним общий язык )


Язык найдем))) Никуда ему от меня не деться)))

Спасибо, что помогаешь освоить азы программирования и обращаешь внимание на пробелы в моем понимании языка. Это очень ценно для меня и помогает направить мое внимание в нужную сторону!
Постараюсь не перегружать ветку вопросами, которые могут быть решены, более внимательным отношением к языку.

Все как будто исправил и теперь qDom отреагировал на мою библиотечку! Но прореагирова как то тревожно...

При компиляции прошло все хорошо, компилятор ошибку не выдал, но при инициализации библиотеки в qDom , появилась вот такая ошибка:



Вот детализированный отчет об ошибке:


?дет ссылка на uMain.pas значит ошибка сидит где то здесь:

Код:
unit uAtLibMain;

interface
 uses uATLibrary,
      SysUtils,Dialogs, Forms;

 type
  form1 = class(TForm);



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
 frmMain : TForm;
 R : TLibInitialRecord ;

implementation


function AT_LIB_INIT (T : TLibInitialRecord): Cardinal; stdcall;
begin
R:= T ;

frmMain := TForm.Create(nil);

end ;

function AT_LIB_CYCLE: Cardinal ; stdcall;
 begin

 end ;

function AT_LIB_DONE: Cardinal ; stdcall;
 begin

  frmMain.Free;
  {}
 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.


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


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

СообщениеДобавлено: Вс Июл 24, 2011 10:35 am    Заголовок сообщения: Ответить с цитатой

Сергей, не надо пытаться программировать наугад!!! Это сильно увеличит время твоего обучения и количество неправильных вопросов!!!

если ты пишешь

Код:
form1 = class(TForm);

ты должен точно понимать, что ты делаешь. Если бы понимал никогда бы так не написал.

Когда ты добавляешь в проект форму - Delphi создает unit с классом именно этой формы, когда ты визуально редактиуешь форму Delphi автоматически правит код класса этой формы. Когда ты подготовил форму остается только объявить переменную ЭТОГО класса, и создать форму, в том месте кода где требуется. Если, как в нашем случае, мы объявляем переменную в другом модуле, не в котором она объявлена, то в этот модуль нужно добавить в uses модуль формы.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Trading tools -> QuikOrdersDOM SDK Часовой пояс: GMT + 3
На страницу 1, 2, 3, 4, 5  След.
Страница 1 из 5

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


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


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