Как создать библиотеку dll

Образцы, куски исходников, вопросы. Обсуждаем программирование.
Сообщение
Автор
Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Хозяин - барин

#126 Сообщение Николай Тарасов » Сб апр 23, 2011 1:16 pm

Что тут скажешь, Александр?
Само собой, Вам решать.
Как говорится: "Хозяин - барин".
Последний раз редактировалось Николай Тарасов Пт май 13, 2011 5:59 am, всего редактировалось 1 раз.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

#127 Сообщение Николай Тарасов » Чт апр 28, 2011 8:38 pm

Николай Тарасов писал(а):
FT Support писал(а):
Здравствуйте.
Второй пункт поподробнее опишите, пожалуйста. Где и как смотреть?
Или вы имеете в виду, что можно запрограммировать перебор объектов?
да, имею в виду, что можно "пробежать" по всем объектам и вывести их список в каком-то удобном виде. Чтобы это сделать используйте функции ObjectsTotal и ObjectName

возможно работа с объектами у нас "сыровата" по сравнению с терминалами, которые разрабатывают большие команды программистов (например МТ). Но мы не такая большая компания чтобы их "догнать и перегнать" хотя мы стараемся :)
Всё хорошо.
Вы молодцы.
:wink:

Главное - то, что вы делаете, нужно людям.
Поэтому у вас всё получится!
Здравствуйте всем!

Обнаружил, что список графических объектов можно посмотреть вот здесь:
"C:\ForexTester2\data\TestingMode\desktop.dat"


Александр, Михаил, спасибо, вам большое!
Это очень удобно.

Я давно уже хотел проверить, что у меня получается на выходе.
Глянул, и сразу отловил у себя неточность. :wink:

PS
Не исключаю, что такая возможность у вас была и раньше. :wink:
Даже если это и так, всё равно - спасибо вам!
Последний раз редактировалось Николай Тарасов Чт апр 28, 2011 10:23 pm, всего редактировалось 3 раза.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

#128 Сообщение Николай Тарасов » Чт апр 28, 2011 9:08 pm

FT Support писал(а):Здравствуйте, Николай,

Странно, но у нас функция Symbol в скриптах работает правильно...
возможно это зависит от региональных настроек или различий в компиляторах, пожалуйста скомпилируйте вот этот код и пришлите нам dll: ...
По поводу для кого-то недоступной функции Symbol предполагаю,
что временно можно выйти из положения, считывая его из файла (см. следующую за параметром 'CurrListSize' строчку):
"C:\ForexTester2\data\TestingMode\LastState.dat".
Подкупает название файла: "Last State" - последнее состояние (положение), - и действительно свежая дата обновления файла.
Хотя, так могло отметиться недавнее обновление FT до версии 2.7.7.

Можно поступить ещё проще - прочитать файл: "C:\ForexTester2\data\TestingMode\SymbolList.dat"
У меня там всего одна строчка (не уверен, что у всех так же).

Александр, как вы думаете, насколько приемлемо такое решение?
Может быть, вы подскажите другие варианты?


PS
Как считывать информацию из файлов, можно узнать здесь (см. пост 'Ср Мар 30, 2011 5:36 pm'):
http://forextester.ru/forum/viewtopic.p ... c&start=75
Придётся лишь немного подкорректировать функцию 'UserOptionGet'.
Последний раз редактировалось Николай Тарасов Вт май 03, 2011 2:09 am, всего редактировалось 1 раз.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Про индикаторы

#129 Сообщение Николай Тарасов » Вт май 03, 2011 2:05 am

Здравствуйте, Михаил.
Здравствуйте, Александр.

Нельзя ли сделать так, чтобы при пересчёте индикаторов на экране (графике цены) менялись (пересчитывались) не только численные, но и иные параметры индикаторов (цвет, стиль, толщина и имя линий)?
В общем - всё, что определяется в разделах кода 'Initialize' и 'Deinitialize':

Код: Выделить всё

//---------------------------------------------------------------------------
// Initialize indicator
//---------------------------------------------------------------------------
procedure Init; stdcall;
begin

end;

//---------------------------------------------------------------------------
// Deinitialize indicator
//---------------------------------------------------------------------------
procedure Done; stdcall;
begin

end;
Как я понимаю, пока что это возможно лишь при полной переустановке индикаторов на график.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Access violation

#130 Сообщение Николай Тарасов » Вт май 03, 2011 1:21 pm

Здравствуйте.

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

Скажите, что можно теперь сделать, кроме простой смены у индикатора имени? Переустановить FT2?

* * *
В индикаторе стоит запрос цвета из файла.
Запрос вставил недавно.
До него было явное указание цвета.
Может быть, именно это повлияло на такую вот реакцию FT2?

А может быть сказалось то, что файл с цветом был всё время открыт (см. следующее моё сообщение об ошибке окраски индикатора)?
Но я регулярно делаю так со скриптами. Держу открытыми файлы с параметрами. Но ничего подобного не замечал.

Сообщение об ошибке прилагается.

--
Заранее благодарю за помощь.
Вложения
Access violation.JPG
(112.37 КБ) 36597 скачиваний
Последний раз редактировалось Николай Тарасов Вт май 03, 2011 11:12 pm, всего редактировалось 2 раза.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Ошибка окраски индикатора

#131 Сообщение Николай Тарасов » Вт май 03, 2011 11:02 pm

Здравствуйте, уважаемые Михаил и Александр.

1. Столкнулся с неверным отображением индикатором стандартного цвета 'Lavender'.

Задавал его числом '15132410' = 'E6 E6 FA' (см. http://ru.wikipedia.org/wiki/Цвета_в_Web).

Получить этот цвет удалось перестановкой красного и синего цветов ('RGB' to 'BGR'):
'16443110' = 'FA E6 E6'.

2. Проверил то же самое (раскраску цветом) на текстовой метке, выставляемой скриптом.
Там всё в порядке. Первый вариант ('15132410') дал нужный цвет.

* * *
Предполагаю, что путаницу вносит мой системный модуль 'Graphics.pas' (прилагается).
Почему-то он указанный стандартный цвет (да и не только его) отождествляет с другим числом:

Код: Выделить всё

  clWebLavender = $FAE6E6; 
  ...
  clWebMoccasin = $B5E4FF;
Хотя какое-то странное распределение путаницы.
Не находите?

Михаил, Александр, посоветуйте, пожалуйста, как нам (пользователям FT2) быть. Неужели нам так придётся всё время применять легендарный метод "научного тыка"?


PS
Любопытно, что другой стандартный цвет 'Moccasin', заданный числом '16770229' = 'FF E4 B5', таких проблем не вызвал. И индикатор, и скрипт отражают его правильно!
Вложения
Graphics.rar
(52.83 КБ) 1227 скачиваний
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Ошибка установки индикатора

#132 Сообщение Николай Тарасов » Ср май 04, 2011 6:34 am

Здравствуйте.
Сегодня попробовал снова установить индикатор.
Опять ошибка, но уже другая (см. рисунок).
Вложения
Access violation2.JPG
(99.99 КБ) 35791 скачивание
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Утро вечера удрёнее!

#133 Сообщение Николай Тарасов » Ср май 04, 2011 6:41 am

Ха!
Закрыл файл с цветом, и индикатор установился!!! :D

Ура! Всё снова ожило! :D
Значит можно продолжить работу.

Благодарю за помощь! :wink:
Теперь будем знать, что:
"Перед установкой в FT2 индикаторов, скриптов и стратегий все файлы-корреспонденты надо закрывать!" :!:

Во истину - утро вечера мудрёнее!
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Немаловажная мелочь

#134 Сообщение Николай Тарасов » Ср май 04, 2011 12:10 pm

Здравствуйте.
Отловил такую немаловажную особенность FT2.

Оказывается, что для корректного сравнения некоего Double-числа с ds_Line-индикатором округлять (приводить к некоей точности) нужно не только число, но и значение самого индикатора.
Это нужно делать даже в том случае, когда индикатору присвоены заранее округлённые значения!!!

Код: Выделить всё

  if Floor(
     S1[index+1]                                      // Число 1
     * Exp(Ln(10)*Digits) + 5/9) / Exp(Ln(10)*Digits) // Округление до точности графика
     =                                                // Оператор сравнения
     Floor(
     S1[index  ]                                      // Число 2
     * Exp(Ln(10)*Digits) + 5/9) / Exp(Ln(10)*Digits) // Округление до точности графика 
     then
     begin
       ...
     end;
--
Про '5/9' и то, как правильно округлять числа, см. здесь (пост 'Вт Фев 22, 2011 11:14 pm'):
http://forextester.ru/forum/viewtopic.p ... c&start=60
Я желаю всем счастья.

FT Support
Сообщения: 329
Зарегистрирован: Сб июл 11, 2009 3:59 pm

#135 Сообщение FT Support » Пт май 06, 2011 12:08 pm

Здравствуйте, Николай,

Извините за задержку, прадзники...

похоже Вы уже со всем разобрались.

P.S. числа с плавающей запятой в любом языке лучше сравнивать округляя

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

- С праздником! - С каким таким праздником? /Что празднуем?/

#136 Сообщение Николай Тарасов » Пт май 06, 2011 1:24 pm

FT Support писал(а):Здравствуйте, Николай,

Извините за задержку, прадзники...
Здравствуйте, здравствуйте, Александр.
Интересно, что в Канаде празднуют первого мая?
Последний раз редактировалось Николай Тарасов Вс май 22, 2011 1:37 pm, всего редактировалось 6 раз.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

#137 Сообщение Николай Тарасов » Пт май 06, 2011 2:49 pm

FT Support писал(а):Здравствуйте, Николай,
...
похоже Вы уже со всем разобрались.
Александр, надеюсь вы читаете не только хвостики (то есть крайние сообщения своих форумян-прихожан).
Хотелось бы получить от вас комментарии по ранее заданным вопросам.


PS
Недавно заметил, что в некоторых старых ваших ответах пропали иллюстрации!
Если можно, восстановите, пока первоисточники у вас не исчезли окончательно.
Например, вот здесь (посмотрите на ваш пост 'Пн Апр 04, 2011 7:28 pm'): http://forextester.ru/forum/viewtopic.p ... c&start=75

* * *
Ха!
Пока искал пример, увидел, что и в некоторых моих постах отсутствуют иллюстрации. Например, на той же странице посмотрите мой пост 'Сб Апр 02, 2011 8:36 am'.
Александр, как это понимать? Что, это вы так место на сервере подчищаете?
:wink:
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

С праздником Победы!!!

#138 Сообщение Николай Тарасов » Пн май 09, 2011 5:32 pm

Привет всем.
С праздником Победы нашей великой страны (СССР)
в Великой Отечественной войне 1941-1945 гг.!!!
Последний раз редактировалось Николай Тарасов Вс май 22, 2011 1:36 pm, всего редактировалось 1 раз.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

#139 Сообщение Николай Тарасов » Вт май 17, 2011 8:14 pm

Здравствуйте, Михаил.
Здравствуйте, Александр.

У меня к вам вопрос:
"Меняется ли маркировка баров в ходе исполнения затяжного (по времени) скрипта?"

Могу предположить, что меняется, поскольку во время исполнения скрипта на графике появляются всё новые и новые бары (тики). Такое ощущение, что новый тик не дожидается исполнения скрипта, а "тикает" себе и "тикает" без оглядки на окружающих (скрипты, индикаторы, стратегии).

Если это так, то как, на ваш взгляд, нужно организовать работу, например, с функциями iOpen, iClose и т.п., чтобы в них можно было использовать индекс бара, выдаваемый функциями iHighest и iLowest?
Ведь иногда интервал поиска экстремума может быть довольно большим.

Предполагаю, что поиск бара нужно осуществлять прямо в указанных функциях (iOpen, iClose и т.п.). То есть каждый раз заново!
Чтобы иметь самую свежую информацию (о индексе). А это может заметно затянуть исполнение скрипта.

Хотя, возможно, упомянутые функции (iOpen, iClose и т.п.) быстроисполняемые, т.к. сами ничего не перебирают, а обращаются к конкретному бару с конкретным индексом. И беспокоиться о том, что их время исполнения как-то может повлиять на ход исполнения скрипта не стоит.

Михаил, Александр, прошу, внесите ясность и понимание относительно данного вопроса.

Заранее благодарю.


PS
Вожусь с ошибкой исполнения логической развилки типа "if-then-else".
Уже и не знаю, на что подумать?
Замучился выдвигать всякие безумные догадки.
Заданный вопрос как раз из таких.
Последний раз редактировалось Николай Тарасов Ср май 18, 2011 11:43 am, всего редактировалось 3 раза.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Особенности работы функций iHighest и iLowest

#140 Сообщение Николай Тарасов » Ср май 18, 2011 9:43 am

Здравствуйте.
Давно хотел спросить.
Скажите, пожалуйста:

1. Можно ли в функциях iHighest и iLowest использовать минусовое число перебираемых баров (count<0)?
Если нет, то нельзя ли добавить такую возможность в будущем?
Ведь минуты часа (часы дня, дни недели или месяца, месяцы года и т.д.) для пользователей FT удобнее перебирать не справа налево (с 59 по 00 минуту включительно), а как раз наоборот (с 00 по 59 минуту).

2. Как работают эти формулы при нулевом значении счётчика баров (count=0)?
Можно ли считать, что в таком случае будет обработан всего 1 бар?

3. В связи с этим, скажите, надо ли делать предварительную проверку этого параметра на пригодность (count>0)?

Заранее благодарю.
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

#141 Сообщение Николай Тарасов » Чт май 19, 2011 9:51 am

FT Support писал(а):Здравствуйте, Николай,

Извините за задержку, прадзники...

похоже Вы уже со всем разобрались.

P.S. числа с плавающей запятой в любом языке лучше сравнивать округляя
Александр, а где нужно округлять?

Непосредственно при сравнивании (внутри конструкции сравнения: 'x < y')?
Или можно делать это загодя (непосредственно перед сравнением).

А, может, тогда стОит (для надёжности) временно переходить к целым числам и
заниматься уже их сравнением: 'Floor(x * Exp(Ln(10)*Digits) + 5/9) < Floor(y * Exp(Ln(10)*Digits) + 5/9)') ?
Я желаю всем счастья.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

Извините меня!

#142 Сообщение Николай Тарасов » Вс май 22, 2011 1:55 pm

Здравствуйте, Александр.
Куда вы пропали?
Помогите мне, пожалуйста. Очень вас прошу.

Заранее благодарю.
--
С уважением - Николай Тарасов.


PS
Если бы я был бестактным, пожалуйста, извините меня!
Я желаю всем счастья.

FT Support
Сообщения: 329
Зарегистрирован: Сб июл 11, 2009 3:59 pm

#143 Сообщение FT Support » Вс май 22, 2011 4:41 pm

Здравствуйте, Николай,

Вы уж извините, иногда у нас бывает "запарка", тогда на форуме реже отвечаем.

Ответы на Ваши вопросы такие:

1) "Меняется ли маркировка баров в ходе исполнения затяжного (по времени) скрипта?"

Нет, не меняется, программа ждёт окончания выполнения скрипта.

2) Можно ли в функциях iHighest и iLowest использовать минусовое число перебираемых баров (count<0)?

Нет, минусовое число использовать нельзя. А разве это возможно в МТ?

3) Как работают эти формулы при нулевом значении счётчика баров (count=0)?

В этом случае функция не отработает, т.к. количество проверяемых баров будет равно 0, в итоге 0 баров будет просмотрено.

4) В связи с этим, скажите, надо ли делать предварительную проверку этого параметра на пригодность (count>0)?

Желательно сделать такую проверку

5) где нужно округлять?

Округлять нужно только в случае если Вы проверяете значения на равенство (не больше-меньше, а именно равенство). и совсем не обязательно округлять до целых чисел, можно просто округлить до N-ого знака после запятой.

Аватара пользователя
Николай Тарасов
Сообщения: 144
Зарегистрирован: Чт авг 27, 2009 4:39 pm
Откуда: Екатеринбург
Контактная информация:

#144 Сообщение Николай Тарасов » Вс май 22, 2011 5:27 pm

Большое спасибо.
Буду дальше разбираться, почему же у меня развилки работают не всегда так, как надо.
Я желаю всем счастья.

alvlts
Сообщения: 17
Зарегистрирован: Сб сен 07, 2013 1:48 pm

Вопросики.

#145 Сообщение alvlts » Вт сен 17, 2013 7:41 am

Здравствуйте.
Начинаю изучать применение Делфи в написании скриптов и индикаторов для ФТ и наткнулся на следующее. При компиляции примеров индикатора и стратегии из примеров выскакивают ошибки. Насколько я понимаю- не соответствие типов. Версия Делфи- 10.
Вопрос- с чем это связано и как устранить ?
Скриншоты почему-то не прикрепляются.

FX Helper
Сообщения: 567
Зарегистрирован: Пн апр 01, 2013 11:44 am

#146 Сообщение FX Helper » Вт сен 17, 2013 9:20 am

Здравствуйте,

Может быть много разных проблем. Пожалуйста, расскажите более конкретно о Вашей проблеме и пришлите код.

alvlts
Сообщения: 17
Зарегистрирован: Сб сен 07, 2013 1:48 pm

#147 Сообщение alvlts » Ср сен 18, 2013 9:24 am

library Stochastic;



uses

SysUtils, classes, graphics, windows, IndicatorInterfaceUnit;



var

// внешние параметры

KPeriod: integer;

DPeriod: integer;

Slowing: integer;

ApplyTo: integer;



// индексные буферы

Kfast, Kslow, Dline: TIndexBuffer;





//---------------------------------------------------------------------------

// Инициализация

//---------------------------------------------------------------------------

procedure Init; stdcall;

begin

// настроить индикатор

IndicatorShortName('Stochastic'); // name Stochastic

SetOutputWindow(ow_SeparateWindow); // paint in separate window

SetFixedMinMaxValues(0, 100); // scale between 0 and 100

AddLevel(20, psDot, 1, clGray); // define level 20

AddLevel(80, psDot, 1, clGray); // define level 80

SetEmptyValue(105); // empty value 105



// регистрация внешних параметров

AddSeparator('Common');



RegOption('%K period', ot_Integer, KPeriod);

SetOptionRange('%K period', 1, MaxInt);

KPeriod := 8;



RegOption('%D period', ot_Integer, DPeriod);

SetOptionRange('%D period', 1, MaxInt);

DPeriod := 3;



RegOption('Slowing', ot_Integer, Slowing);

SetOptionRange('Slowing', 1, MaxInt);

Slowing := 3;



RegOption('Apply to', ot_EnumType, ApplyTo);

AddOptionValue('Apply to', 'High/Low');

AddOptionValue('Apply to', 'Close/Close');

ApplyTo := 0;



// Создать индексные буферы

Kfast := CreateIndexBuffer; // this buffer will be invisible

Kslow := CreateIndexBuffer;

Dline := CreateIndexBuffer;



IndicatorBuffers(2);

SetIndexBuffer(0, Kslow);

SetIndexBuffer(1, Dline);



SetIndexStyle(0, 0, psSolid, 1, RGB($1E, $90, $FF));

SetIndexStyle(1, 0, psDot, 1, clRed);

end;



//---------------------------------------------------------------------------

// Деинициализация

//---------------------------------------------------------------------------

procedure Done; stdcall;

begin

// do nothing

end;



//---------------------------------------------------------------------------

// Расчет одного бара

//---------------------------------------------------------------------------

procedure Calculate(index: integer); stdcall;

var

sum, Plow, Phigh, P: double;

i: integer;



function price(i: integer): double;

begin

if ApplyTo = 0 then

result := (Low(i) + High(i))/2

else

result := Close(i);

end;



begin

if (Bars < KPeriod) or (Bars < Slowing) or (Bars < DPeriod) then

exit;



// поиск высшей и наименьшей цены для KPeriod

Phigh := High(index);

Plow := Low(index);

for i:=1 to KPeriod - 1 do

begin

if High(index + i) > Phigh then

Phigh := High(index + i);

if Low(index + i) < Plow then

Plow := Low(index + i);

end;



// count Kfast line value

if Phigh <= Plow then

Kfast[index] := 50

else

Kfast[index] := 100*((price(index) - Plow)/(Phigh - Plow));



// get Kslow

sum := 0;

for i:=0 to Slowing - 1 do

sum := sum + Kfast[index + i];

Kslow[index] := sum/Slowing;



// get Dline

sum := 0;

for i:=0 to DPeriod - 1 do

sum := sum + Kslow[index + i];

Dline[index] := sum/DPeriod;

end;



exports



Init, Done, Calculate;



end.



Этот код взят из документации по написанию индикаторов. На строку,
выделенную красным цветом ругается компилятор.
Checking project dependencies...

Compiling Project1.dproj (Debug configuration)
[DCC Warning] IndicatorInterfaceUnit.pas(1246): W1044 Suspicious typecast of AnsiString to PWideChar
[DCC Error] Project1.dpr(118): E2010 Incompatible types: 'TDrawStyle' and 'Integer'
[DCC Error] Project1.dpr(120): E2010 Incompatible types: 'TDrawStyle' and 'Integer'
Failed

Получается, что существует какое-то отличие между настройками моего компилятора и тем, на котором производилась отладка данноо кода.
Elapsed time: 00:00:02.0

FX Helper
Сообщения: 567
Зарегистрирован: Пн апр 01, 2013 11:44 am

#148 Сообщение FX Helper » Ср сен 18, 2013 3:11 pm

Здравствуйте,

Попробуйте воспользоваться функцией StrToInt, чтобы перевести Hex стринговый в Hex числовой в выделенной красным строчке.

например, StrToInt('$FF')

alvlts
Сообщения: 17
Зарегистрирован: Сб сен 07, 2013 1:48 pm

#149 Сообщение alvlts » Ср сен 18, 2013 4:41 pm

сделал так
SetIndexStyle(0, 0, psSolid, 1, RGB(StrToInt('$1E'), StrToInt('$90'), StrToInt('$FF')));

ошибки
Compiling Project1.dproj (Debug configuration)
[DCC Error] Project1.dpr(118): E2010 Incompatible types: 'TDrawStyle' and 'Integer'
[DCC Error] Project1.dpr(120): E2010 Incompatible types: 'TDrawStyle' and 'Integer'
Failed
Elapsed time: 00:00:00.2

Ответить