Как создать библиотеку dll
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Михаил, Александр.FT Support писал(а):Здравствуйте Николай,
Пожалуйста пришлите полный пример скрипта со всеми "спорными моментами".
Заранее спасибо!
1. Спасибо за готовность помочь.
Я уже убедился, что забота о своих клиентах -
отличительная черта вашей компании.
2. С вашим тестовым скриптом я давно уже разобрался.
Мне очень помогла ваша поддержка и квалифицированная помощь.
3. Свои MT4-индикаторы благополучно переделал под FT2.
Теперь вот занимаюсь переводом МТ4-скриптов.
Для унификации приёмов работы в этих разных средах (FT2 и МТ4)
попутно затеял глобальную перестройку алгоритма.
Дело медленно, но продвигается (с вашей помощью).
Вопросы стараюсь задавать по мере возникновения.
4. Надеюсь, мой опыт послужит хорошим примером для тех,
кто привык к МТ4 и ещё побаивается Delphi и/или C++.
Не робейте, это несложно!
Как говориться: "Дважды два и в Африке - четыре".
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Благодарю вас, Александр.FT Support писал(а):Здравствуйте, Николай, извините за поздний ответ, видимо пропустил эту тему на форуме. В чём именно проблем с цветом? не компилируется код? или не отображается установленный цвет, если не компилируется код, то добавьте библиотеку graphics
Ваши прежние рекомендации разрешили почти все мои проблемы с раскраской.
Обещаю сообщить, если у меня что-то будет не получаться.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Ну вот, Александр.
Вам не пришлось долго ждать.
У меня никак не получается из скрипта
присвоить нужные мне имена Фибо-уровням.
Во-первых, вместо имени указываются значения уровней (OBJPROP_LEVELVALUE, см. рисунок).
Во-вторых, на попытки присвоить уровню текстовую подпись (OBJPROP_TEXT) компилятор ругается,
сообщая, что подпись может принимает лишь числовые значения.
Хотя, в ручном режиме ввод текстовых подписей к уровням допускается.
Вот фрагмент кода:
А вот сообщение об ошибке:
Полный текст скрипта прилагается.
В общем, помогите, пожалуйста.
Не могу никак разобраться.
Вам не пришлось долго ждать.
У меня никак не получается из скрипта
присвоить нужные мне имена Фибо-уровням.
Во-первых, вместо имени указываются значения уровней (OBJPROP_LEVELVALUE, см. рисунок).
Во-вторых, на попытки присвоить уровню текстовую подпись (OBJPROP_TEXT) компилятор ругается,
сообщая, что подпись может принимает лишь числовые значения.
Хотя, в ручном режиме ввод текстовых подписей к уровням допускается.
Вот фрагмент кода:
Код: Выделить всё
ObjectSet(names[4], OBJPROP_TEXT, 'i');
Код: Выделить всё
[Error] ObjectsTest_Plus.dpr(98): Incompatible types: 'Double' and 'Char'
В общем, помогите, пожалуйста.
Не могу никак разобраться.
- Вложения
-
- OBJPROP_TEXT of obj_FiboRetracement.JPG
- (124.33 КБ) 3497 скачиваний
-
- ObjectsTest_Plus.rar
- (1.27 КБ) 1034 скачивания
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Хорошо, хорошо.FT Support писал(а):Здравствуйте, Николай,
Пока что программно нельзя менять подписи уровеней, но это будет исправлено в ближайших версиях (это улучшение недалеко в очереди)
Можете не торопиться.
Для подписей уровней я нашёл изящный выход.
Я просто подписываю Фибо-уровни
текстовыми метками нужного мне цвета.
Причём наиболее подходящим шрифтом
наиболее удобного для просмотра размера.
Последняя опция (выбор шрифта и его размер) оказалась очень даже полезной и приятной.
Всем рекомендую!!!
Теперь вот подумываю, не сделать ли так же и в скриптах для MT4.
Сдерживает лишь, что от это несколько разбухнет список объектов.
PS
Александр, Михаил,
скажите, пожалуйста,
не планируется ли у вас дополнить текстовую метку опциями:
- Bold (полужирный шрифт) и
- Italic (курсивный шрифт)?
Для полного счастья, так сказать.
А так же для более полного соответствия возможностей автоматической и ручной разметки текстовых меток.
О других параметрах:
- зачёркнуто,
- подчёркнуто и
- набор символов, - я уже и не заикаюсь.
PS2
А как насчёт "Списока объектов"?
Я уже спрашивал об этом, но так и не услышал ответа.
Вы хоть моргните, что ли?
PS3
Кстати, говоря.
Чуть не забыл!
Сами Фибо-уровни, подписанные указанными выше способом,
на графике можно достаточно точно обозначить
символом подчёркивания "_".
Например: "_+2/8" и "_50%".
Кому этого мало, может прикрепить к графику
соизмеримый индикатор уровней.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Ха!FT Support писал(а):Здравствуйте, Николай,
Пока что программно нельзя менять подписи уровеней, но это будет исправлено в ближайших версиях (это улучшение недалеко в очереди)
Да у вас этот параметр (OBJPROP_TEXT)
вообще во всех программируемых объектах неправильно работает!
Функция ObjectSet() для OBJPROP_TEXT упорно просит дать число,
вместо переменной строкового типа.
Чтобы не было непонимания, перечисляю поимённо всех,
у кого я обнаружил эту проблему (с помощью модификаций скрипта ObjectsTest):
1) obj_VLine;
2) obj_HLine;
3) obj_TrendLine;
4) obj_Ray;
5) obj_FiboFan;
6) obj_Text.
У всех этих объектов вместо текста (описания) выводится пустой результат.
Исключение - объект obj_Text самостоятельно выдаёт подпись "Text".
Вероятно, это какое-то предыдущее необнулённое значение. Ясно, что так быть не должно.
Ребята, вы уж разберитесь, пожалуйста.
PS
Не сочтите за нахальство, но я бы на вашем месте вообще убрал функцию ObjectSetText().
Какая-то она надуманная.
Ведь есть у вас свойства объектов:
1) OBJPROP_TEXT = 27; // значение текста/описания;
2) OBJPROP_COLOR = 6; // цвет;
3) OBJPROP_FONTNAME = 24; // название шрифта;
4) OBJPROP_FONTSIZE = 21; // размер шрифта (для объекта Text и объекта TextLabel).
Вот почти и всё, что нужно.
Зачем же дублировать то же самое, выделять отдельную функцию?
Добавьте ещё:
5) OBJPROP_BOLDFONT = ?? // полужирный шрифт (Bolean);
6) OBJPROP_ITALICFONT = ?? // курсивный шрифт (Bolean), -
и всё будет, как говорится в ажуре.
PS2
Помимо того я столкнулся ещё с одной неразберихой вокруг функции ObjectSetText().
Но об этом в лучше следующем посте.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Продолжение
...
Не хочу сейчас заниматься писаниной.
Постараюсь изложить суть проблемы коротко и по существу.
Значит так.
Намучился я вчера с раскраской трендовых линий.
Всё пытался покрасить их стандартной функцией ObjectSet(),
меняя параметр OBJPROP_COLOR.
Пробовал и так и сяк. Всё без толку.
В итоге помогла функция ObjectSetText(),
как бы удивительно это не выглядело.
Чётко установить все нюансы того, когда и как проявляется ошибка установить не смог.
В одних скриптах проявления одни, в других - другие.
Могу, например, сказать, что без функции ObjectSetText()
мне не удалось обойтись при раскраске вертикальных и горизонтальных трендов.
* * *
Михаил, Александр,
прошу принять меры.
Очень вас прошу.
Мало того, что язык Delphy ещё не достаточно освоен.
Ещё такая вот беда под ногами мешается.
...
Не хочу сейчас заниматься писаниной.
Постараюсь изложить суть проблемы коротко и по существу.
Значит так.
Намучился я вчера с раскраской трендовых линий.
Всё пытался покрасить их стандартной функцией ObjectSet(),
меняя параметр OBJPROP_COLOR.
Пробовал и так и сяк. Всё без толку.
В итоге помогла функция ObjectSetText(),
как бы удивительно это не выглядело.
Чётко установить все нюансы того, когда и как проявляется ошибка установить не смог.
В одних скриптах проявления одни, в других - другие.
Могу, например, сказать, что без функции ObjectSetText()
мне не удалось обойтись при раскраске вертикальных и горизонтальных трендов.
* * *
Михаил, Александр,
прошу принять меры.
Очень вас прошу.
Мало того, что язык Delphy ещё не достаточно освоен.
Ещё такая вот беда под ногами мешается.
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
Здравствуйте, Николай, написали Вы очень много, поэтому наверное отвечу не на всё, напомните если что оставил без внимания.
1) в ближайшее время дополнять текстовую метку параметрами bold/italic не планируется, мешают более срочные и важные дополнения, но в очередь усовершенствований это добавим и сделаем когда руки дойдут.
Если мы будем заниматься каждой мелочью, на которую тоже уходит вермя, то развитие программы по-сути остановится, ведь это время мы могли бы потратить на что-то большое
2) По поводу "списка объектов": Вы имеете в виду при ручном редактировании выдавать список всех объектов, которые находятся на графике? Такое мы сделаем, но пока что можно выводить список объектов вручную из индикатора например
3) про OBJPROP_TEXT мы подумаем и возможно уберём, оставим ObjectSetText
4) Пожалуйста опишите подробнее проблемы с раскраской трендовых линий
1) в ближайшее время дополнять текстовую метку параметрами bold/italic не планируется, мешают более срочные и важные дополнения, но в очередь усовершенствований это добавим и сделаем когда руки дойдут.
Если мы будем заниматься каждой мелочью, на которую тоже уходит вермя, то развитие программы по-сути остановится, ведь это время мы могли бы потратить на что-то большое
2) По поводу "списка объектов": Вы имеете в виду при ручном редактировании выдавать список всех объектов, которые находятся на графике? Такое мы сделаем, но пока что можно выводить список объектов вручную из индикатора например
3) про OBJPROP_TEXT мы подумаем и возможно уберём, оставим ObjectSetText
4) Пожалуйста опишите подробнее проблемы с раскраской трендовых линий
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Здравствуйте.FT Support писал(а):Здравствуйте, Николай, написали Вы очень много, поэтому наверное отвечу не на всё, напомните если что оставил без внимания.
1) в ближайшее время дополнять текстовую метку параметрами bold/italic не планируется, мешают более срочные и важные дополнения, но в очередь усовершенствований это добавим и сделаем когда руки дойдут.
Если мы будем заниматься каждой мелочью, на которую тоже уходит вермя, то развитие программы по-сути остановится, ведь это время мы могли бы потратить на что-то большое
2) По поводу "списка объектов": Вы имеете в виду при ручном редактировании выдавать список всех объектов, которые находятся на графике? Такое мы сделаем, но пока что можно выводить список объектов вручную из индикатора например
3) про OBJPROP_TEXT мы подумаем и возможно уберём, оставим ObjectSetText
4) Пожалуйста опишите подробнее проблемы с раскраской трендовых линий
Второй пункт поподробнее опишите, пожалуйста. Где и как смотреть?
Или вы имеете в виду, что можно запрограммировать перебор объектов?
PS
Проблема с раскраской касается не только трендов, а вообще всех объектов,
которые я упомянул, в связи с проблемой присвоения комментариев к объектам
(см. пост выше от Фев 01, 2011 7:11 am).
В связи с этим моя версия - это всё проявления проблемы с функцией ObjectSetText().
Думаю, если её убрать, думаю все заморочки исчезнут.
Ну или сделать всё как следует.
Подробнее описывать сейчас не могу - устал.
Может быть позже.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Здравствуйте.
1. Разобрался с проблемой раскраски.
Оказалось, что блуждающая ошибка возникала из-за того,
что часть трендовых линий я раскрашивал неправильно.
Вместо:
- OBJPROP_COLOR;
- OBJPROP_STYLE;
- OBJPROP_WIDTH, -
в коде фигурировали похожие параметры:
- OBJPROP_LEVELCOLOR;
- OBJPROP_LEVELSTYLE;
- OBJPROP_LEVELWIDTH.
Сожалею, что поднял столько шума по этому поводу.
Но так часто бывает.
Тут уж ничего не поделаешь - издержки перевода (с другого языка).
2. Зато в процессе поиска подходящего для FT2 кода я наткнулся на интересное побочное проявление функции ObjectSetText().
Оказалось, что она успешно справляется с раскраской не только текстовых меток, но и других графических объектов.
Поэтому порой вместо:
можно писать:
Хотя, как мне кажется, быть такого не должно.
Как, впрочем, и присваивания подписям Фибо-уровней значений совсем другого параметра OBJPROP_LEVELVALUE.
3. Кстати, заглянул в скрипт для MT4.
Оказывается там Фибо-уровни подписаны специальной функцией ObjectSetFiboDescription().
А функция ObjectSetText() предусмотрена лишь для объектов OBJ_TEXT и OBJ_LABEL.
У вас такой, как я понимаю, пока нет.
И как вы решите этот вопрос - решать, безусловно, вам.
PS
У меня устойчивое ощущение, что ваш продукт сыроват.
Хотя бы в части работы с объектами.
Вероятно, нужно просто подождать,
дать вам возможность всё настроить не спеша.
И со временем всё встанет на свои места.
Но вы меня тоже должны понять.
А в моём лице многих других своих клиентов.
Мне нужен тестировщик, умеющий делать то, что нужно именно мне.
Причём уже сейчас, а не неизвестно когда.
Для этого я готов самостоятельно находить компромиссные решения,
и доводить его до ума доступными на данный момент средствами.
Это проявление настойчивости и целеустремлённости,
а не блажь, эгоизм или что-то ещё.
Поймите меня (нас) правильно.
Искренне желаю успехов в вашем нелёгком труде программистов.
1. Разобрался с проблемой раскраски.
Оказалось, что блуждающая ошибка возникала из-за того,
что часть трендовых линий я раскрашивал неправильно.
Вместо:
- OBJPROP_COLOR;
- OBJPROP_STYLE;
- OBJPROP_WIDTH, -
в коде фигурировали похожие параметры:
- OBJPROP_LEVELCOLOR;
- OBJPROP_LEVELSTYLE;
- OBJPROP_LEVELWIDTH.
Сожалею, что поднял столько шума по этому поводу.
Но так часто бывает.
Тут уж ничего не поделаешь - издержки перевода (с другого языка).
2. Зато в процессе поиска подходящего для FT2 кода я наткнулся на интересное побочное проявление функции ObjectSetText().
Оказалось, что она успешно справляется с раскраской не только текстовых меток, но и других графических объектов.
Поэтому порой вместо:
Код: Выделить всё
ObjectSet(names[4], OBJPROP_COLOR, clGreen);
Код: Выделить всё
ObjectSetText(names[4], 'Test text', 12, 'Arial', clGreen);
Как, впрочем, и присваивания подписям Фибо-уровней значений совсем другого параметра OBJPROP_LEVELVALUE.
3. Кстати, заглянул в скрипт для MT4.
Оказывается там Фибо-уровни подписаны специальной функцией ObjectSetFiboDescription().
А функция ObjectSetText() предусмотрена лишь для объектов OBJ_TEXT и OBJ_LABEL.
У вас такой, как я понимаю, пока нет.
И как вы решите этот вопрос - решать, безусловно, вам.
PS
У меня устойчивое ощущение, что ваш продукт сыроват.
Хотя бы в части работы с объектами.
Вероятно, нужно просто подождать,
дать вам возможность всё настроить не спеша.
И со временем всё встанет на свои места.
Но вы меня тоже должны понять.
А в моём лице многих других своих клиентов.
Мне нужен тестировщик, умеющий делать то, что нужно именно мне.
Причём уже сейчас, а не неизвестно когда.
Для этого я готов самостоятельно находить компромиссные решения,
и доводить его до ума доступными на данный момент средствами.
Это проявление настойчивости и целеустремлённости,
а не блажь, эгоизм или что-то ещё.
Поймите меня (нас) правильно.
Искренне желаю успехов в вашем нелёгком труде программистов.
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
да, имею в виду, что можно "пробежать" по всем объектам и вывести их список в каком-то удобном виде. Чтобы это сделать используйте функции ObjectsTotal и ObjectNameЗдравствуйте.
Второй пункт поподробнее опишите, пожалуйста. Где и как смотреть?
Или вы имеете в виду, что можно запрограммировать перебор объектов?
возможно работа с объектами у нас "сыровата" по сравнению с терминалами, которые разрабатывают большие команды программистов (например МТ). Но мы не такая большая компания чтобы их "догнать и перегнать" хотя мы стараемся
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Всё хорошо.FT Support писал(а):да, имею в виду, что можно "пробежать" по всем объектам и вывести их список в каком-то удобном виде. Чтобы это сделать используйте функции ObjectsTotal и ObjectNameЗдравствуйте.
Второй пункт поподробнее опишите, пожалуйста. Где и как смотреть?
Или вы имеете в виду, что можно запрограммировать перебор объектов?
возможно работа с объектами у нас "сыровата" по сравнению с терминалами, которые разрабатывают большие команды программистов (например МТ). Но мы не такая большая компания чтобы их "догнать и перегнать" хотя мы стараемся
Вы молодцы.
Главное - то, что вы делаете, нужно людям.
Поэтому у вас всё получится!
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Итак, продолжим нашу совместную работу.
Рубрика: Из личного опыта
Запись и считывание временнЫх координат
Ряд задач предполагает хранение временнЫх координат.
Для этих целей удобно использовать текстовые метки.
Преобразование даты в текст и обратно можно делать так:
Такой способ не зависит от персональных установок пользователя
относительно форматов отображения дат и времени
(см. рисунок и 'Панель управления \ Язык и региональные стандарты').
Это её явное преимущество перед аналогами.
Пример использования прилагается.
PS
Чтобы подобные текстовые метки со служебной информацией не мешались на экране,
их можно закреплять на нулевом price-уровне (OBJPROP_PRICE1=0).
Рубрика: Из личного опыта
Запись и считывание временнЫх координат
Ряд задач предполагает хранение временнЫх координат.
Для этих целей удобно использовать текстовые метки.
Преобразование даты в текст и обратно можно делать так:
Код: Выделить всё
s := DateTimeToStr(ScriptInterfaceUnit.Time(0));
t := StrToDateTime(s);
относительно форматов отображения дат и времени
(см. рисунок и 'Панель управления \ Язык и региональные стандарты').
Это её явное преимущество перед аналогами.
Пример использования прилагается.
PS
Чтобы подобные текстовые метки со служебной информацией не мешались на экране,
их можно закреплять на нулевом price-уровне (OBJPROP_PRICE1=0).
- Вложения
-
- ObjectsTest_Plus2A.rar
- (43.81 КБ) 1062 скачивания
-
- Fig. DateTimeToStr & StrToDateTime.jpg
- (80.93 КБ) 3284 скачивания
Последний раз редактировалось Николай Тарасов Ср фев 09, 2011 9:41 am, всего редактировалось 3 раза.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Недоработка, однако
Кстати говоря.
Пытался из скрипта выставить текстовые метки
на бары с отрицательными индексами (вперёди графика).
Так у меня не вышло.
Хотя вручную установить метку получается.
Это странно, поскольку трендовые линии, например,
в той области рисуются правильно: хоть из скрипта, хоть вручную.
Кстати говоря.
Пытался из скрипта выставить текстовые метки
на бары с отрицательными индексами (вперёди графика).
Так у меня не вышло.
Хотя вручную установить метку получается.
Это странно, поскольку трендовые линии, например,
в той области рисуются правильно: хоть из скрипта, хоть вручную.
Я желаю всем счастья.
-
- Сообщения: 329
- Зарегистрирован: Сб июл 11, 2009 3:59 pm
Здравствуйте, Николай,
Попробуйте вот так:
у меня сработало.
ключевой момент здесь в установке правильного времени для текстовой метки, например: IncDay(IndicatorInterfaceUnit.Time(0), 1)
Попробуйте вот так:
Код: Выделить всё
if not(ObjectExists('spec text')) then
begin
ObjectCreate('spec text', obj_Text, 0, IncDay(IndicatorInterfaceUnit.Time(0), 1), Close(0));
ObjectSetText('spec text', 'spec text', 12, 'Arial', clYellow);
ObjectSet('spec text', OBJPROP_VALIGNMENT, tlBottom);
ObjectSet('spec text', OBJPROP_HALIGNMENT, taLeftJustify);
end;
ключевой момент здесь в установке правильного времени для текстовой метки, например: IncDay(IndicatorInterfaceUnit.Time(0), 1)
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Так-так.FT Support писал(а):Здравствуйте, Николай,
Попробуйте вот так:
у меня сработало.Код: Выделить всё
if not(ObjectExists('spec text')) then begin ObjectCreate('spec text', obj_Text, 0, IncDay(IndicatorInterfaceUnit.Time(0), 1), Close(0)); ObjectSetText('spec text', 'spec text', 12, 'Arial', clYellow); ObjectSet('spec text', OBJPROP_VALIGNMENT, tlBottom); ObjectSet('spec text', OBJPROP_HALIGNMENT, taLeftJustify); end;
ключевой момент здесь в установке правильного времени для текстовой метки, например: IncDay(IndicatorInterfaceUnit.Time(0), 1)
Значит вы, Александр, обошли вопрос с отрицательными индексами баров через приращение даты
(подробнее см. здесь: http://www.delphisources.ru/pages/faq/f ... y.php.html).
Что ж, красиво.
Теперь мне понятно, почему у меня не возникло проблем с трендами.
Просто я делал подобную вещь - указывал не индекс бара, а по сути вычислял, как и вы, нужное время.
Благодарю за урок.
Последний раз редактировалось Николай Тарасов Ср фев 09, 2011 11:43 am, всего редактировалось 2 раза.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Как определить год нужной даты
Были у меня вопросы с тем,
как определить год нужной даты.
С другими компонентами даты вопросов не было.
Функции: MonthOfTheYear, DayOfTheMonth, HourOfTheDay и MinuteOfTheHour, - делают своё дело.
Помнится, нужно лишь модуль 'DateUtils' прицепить.
Итак, про "Год".
Пытался использовать функцию YearsPerMillenium (взял из всплывающего списка-подсказки в Delphi7,
когда пытался нащупать что-то вроде 'YearOf...'):
Не получилось. Год так не определяется.
Прошерстил англоязычный форум.
Вот здесь товарищ Антон Б. ('tonyb') из Англии хорошо разложил алгоритмику:
http://forextester.com/forum/viewtopic.php?p=5075#5075
(см. сообщение от 17 ноября 2010 8:40 вечера).
Очень похоже на то, как извлекается логарифм с произвольным основанием,
и возводятся числа в нужную степень.
Там и там - общий принцип - лаконичность языковых средств.
Сложные операции (функции) составляются из простых (базовых).
PS
Всем рекомендую читать оба форума.
С Google-переводчиком даже не заметно, что форум на английском.
Ведь многие по-русски пишут так, что не всем понятно, что человек имел в виду.
PS2
Кстати, вот хорошая ссылка по time-операциям в Delphi: http://delphi.wikia.com/wiki/Category:DateUtils_Unit
А также: http://perevod.yandex.ru/en/?url=http:/ ... earof.html
Как разберусь - поделюсь опытом.
как определить год нужной даты.
С другими компонентами даты вопросов не было.
Функции: MonthOfTheYear, DayOfTheMonth, HourOfTheDay и MinuteOfTheHour, - делают своё дело.
Помнится, нужно лишь модуль 'DateUtils' прицепить.
Итак, про "Год".
Пытался использовать функцию YearsPerMillenium (взял из всплывающего списка-подсказки в Delphi7,
когда пытался нащупать что-то вроде 'YearOf...'):
Код: Выделить всё
s := IntToStr(DateUtils.YearsPerMillenium(ScriptInterfaceUnit.Time(0)));
Прошерстил англоязычный форум.
Вот здесь товарищ Антон Б. ('tonyb') из Англии хорошо разложил алгоритмику:
http://forextester.com/forum/viewtopic.php?p=5075#5075
(см. сообщение от 17 ноября 2010 8:40 вечера).
Очень похоже на то, как извлекается логарифм с произвольным основанием,
и возводятся числа в нужную степень.
Там и там - общий принцип - лаконичность языковых средств.
Сложные операции (функции) составляются из простых (базовых).
PS
Всем рекомендую читать оба форума.
С Google-переводчиком даже не заметно, что форум на английском.
Ведь многие по-русски пишут так, что не всем понятно, что человек имел в виду.
PS2
Кстати, вот хорошая ссылка по time-операциям в Delphi: http://delphi.wikia.com/wiki/Category:DateUtils_Unit
А также: http://perevod.yandex.ru/en/?url=http:/ ... earof.html
Как разберусь - поделюсь опытом.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
Как определить год (year)?
Итак, прошу любить и жаловать.
У меня получилось-таки записать дату по частям в текстовую метку.
А потом корректно воспроизвести её (см. рисунок).
Не всё так просто, как я думал.
Оказалось, что сделать это можно лишь с оговоркой, что формат даты в Windows будет иметь определённый вид:Поэтому, чтобы не сталкиваться с проблемами из-за индивидуальных (региональных) настроек Windows
рекомендую везде использовать пару взаимодополняющих друг друга
функций DateTimeToStr и StrToDateTime!!!
Подробности выявленных мной особенностей преобразования дат (времени)
в Delphi 7 (Forex Tecter 2) смотрите в скрипте.
У меня получилось-таки записать дату по частям в текстовую метку.
А потом корректно воспроизвести её (см. рисунок).
Не всё так просто, как я думал.
Оказалось, что сделать это можно лишь с оговоркой, что формат даты в Windows будет иметь определённый вид:
Код: Выделить всё
// Only for SystemDateFormat = ( 'd.M.y', 'd.M.yyyy';
// 'dd.MM.yy', 'dd.MM.yyyy')
// and SystemTimeFormat = ('H:m:ss', 'HH:mm:ss')?
// Ok!!!
// Except for SystemDateFormat = ('y-M-d', 'yyyy-M-d'; // See 't3'
// 'd-M-y', 'd-M-yyyy'; // See 't4'
// 'y.M.d', 'yyyy.M.d') // See 't5'
рекомендую везде использовать пару взаимодополняющих друг друга
функций DateTimeToStr и StrToDateTime!!!
Подробности выявленных мной особенностей преобразования дат (времени)
в Delphi 7 (Forex Tecter 2) смотрите в скрипте.
- Вложения
-
- ObjectsTest_Plus2A2.rar
- (1.75 КБ) 1128 скачиваний
-
- Fig. DateTimeToStr-2 & StrToDateTime.jpg
- (103.78 КБ) 3699 скачиваний
Последний раз редактировалось Николай Тарасов Пн апр 11, 2011 7:44 am, всего редактировалось 4 раза.
Я желаю всем счастья.
- Николай Тарасов
- Сообщения: 144
- Зарегистрирован: Чт авг 27, 2009 4:39 pm
- Откуда: Екатеринбург
- Контактная информация:
А вообще-то, хотелось бы пожелать создателям FT2 обеспечить своих клиентов более структурированной,
информативной и удобной справочно-информационной системой.
Например, такой как в MT4.
Посмотрите только на их справку (см. рисунки) - это же загляденье.
Не нарадуешься.
+ Всё понятно.
+ Всё с примерами.
+ Всё в одном месте.
Пиши и пиши себе коды, да ни в чём себе не отказывай.
Если что-то забыл (или не знаешь), это можно быстро найти в справочнике.
информативной и удобной справочно-информационной системой.
Например, такой как в MT4.
Посмотрите только на их справку (см. рисунки) - это же загляденье.
Не нарадуешься.
+ Всё понятно.
+ Всё с примерами.
+ Всё в одном месте.
Пиши и пиши себе коды, да ни в чём себе не отказывай.
Если что-то забыл (или не знаешь), это можно быстро найти в справочнике.
- Вложения
-
- 4 Справочник MQL4 - Преобразования данных - StrToTime.JPG
- (34.28 КБ) 32182 скачивания
-
- 3 Справочник MQL4 - Преобразования данных - TimeToStr.JPG
- (42.27 КБ) 32182 скачивания
-
- 2 Справочник MQL4 - Дата и время.JPG
- (21.12 КБ) 32182 скачивания
Последний раз редактировалось Николай Тарасов Чт фев 10, 2011 11:28 am, всего редактировалось 6 раз.
Я желаю всем счастья.