Страница 1 из 1

Вопрос по API

Добавлено: Пт окт 27, 2017 3:00 pm
dimade
Здравствуйте!
Хочу написать свой индикатор и возникла такая ситуация:

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

EXPORT void __stdcall Calculate(int index) {
if (!ObjectExists(objName)) {
	  auto ok = ObjectCreate(objName, obj_Rectangle, 0, Time(10), Close(10), Time(0), Close(0));
}
else {
	 lastTime = Time(0);
	 ObjectSet(objName, OBJPROP_TIME2, lastTime);
}
Мне нужно, чтобы все прямоугольники расширялись для моей стратегии.
Но в вашем API есть недокументированная функция EXPORT void __stdcall OnPaint(int handle),
с помощью которой я хотел бы видеть обновление прямоугольников и, возможно, других вспомогательных объектов при их перемещении, изменении размеров. Для этого я сделал следующее:

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

EXPORT void __stdcall OnPaint(int handle) {
    if (ObjectExists(objName)) {
        ObjectSet(objName, OBJPROP_TIME2, lastTime);
        или даже
        ObjectGet(objName, OBJPROP_TIME2);
    }
}
При изменении размеров все нормально, но при перемещении прямоугольника обе цены (OBJPROP_PRICE1, OBJPROP_PRICE2) становятся равными 0.
Правильно ли использовать функции ObjectSet, ObjectGet и другие Object... в функции OnPaint()?
Видел что-то подобное в индикаторе TimeBox_FST для объекта obj_Text, но там объекты постоянно пересоздаются.