Страница 1 из 1
Дублируется текст, содаваемый индикатором
Добавлено: Ср ноя 25, 2009 10:33 pm
jam
Доброго времени суток!
Предыстория такая: надумал написать для себя индикатор новостей. Поскольку TextLabel в FT еще не поддерживается (я правильно понял?) и простой текст в угол экрана никак не сориентируешь, решил выводить текст в подокно. Пока там для теста одна единственная надпись.
Так вот, после того, как я просто открываю и закрываю окно настроек индикатора, этот текст дублируется. И в подокне индюка их становится уже два. и т.д. Подскажите, что неправильно делаю, как побороть?
OnParametersChange никак не обрабатываю.
Re: Дублируется текст, содаваемый индикатором
Добавлено: Чт ноя 26, 2009 2:41 am
Terranin
jam писал(а):Доброго времени суток!
Предыстория такая: надумал написать для себя индикатор новостей. Поскольку TextLabel в FT еще не поддерживается (я правильно понял?) и простой текст в угол экрана никак не сориентируешь, решил выводить текст в подокно. Пока там для теста одна единственная надпись.
Так вот, после того, как я просто открываю и закрываю окно настроек индикатора, этот текст дублируется. И в подокне индюка их становится уже два. и т.д. Подскажите, что неправильно делаю, как побороть?
OnParametersChange никак не обрабатываю.
Киньте код который это делает, так сложно сказать.
Добавлено: Чт ноя 26, 2009 6:07 am
jam
Ок, вот он:
Код: Выделить всё
library News;
uses
SysUtils, Graphics, IndicatorInterfaceUnit,
TechnicalFunctions in 'TechnicalFunctions.pas';
var
sNews: string;
ShiftFromRight: integer;
//---------------------------------------------------------------------------
// Initialize indicator
//---------------------------------------------------------------------------
procedure Init; stdcall;
begin
// define properties
IndicatorShortName('News');
SetOutputWindow(ow_SeparateWindow);
// register options
RegOption('ShiftFromRight', ot_Integer, ShiftFromRight);
SetOptionRange('ShiftFromRight', 1, MaxInt);
ShiftFromRight := 200;
end;
//---------------------------------------------------------------------------
// Redraw indicator
//---------------------------------------------------------------------------
procedure OnParametersChange; stdcall;
begin
end;
//---------------------------------------------------------------------------
// Deinitialize indicator
//---------------------------------------------------------------------------
procedure Done; stdcall;
begin
if ObjectExists('TextLabel_01') then
ObjectDelete('TextLabel_01');
end;
//---------------------------------------------------------------------------
// Calculate requested bar
//---------------------------------------------------------------------------
procedure Calculate(index: integer); stdcall;
begin
if not(ObjectExists('TextLabel_01')) then
begin
ObjectCreate('TextLabel_01', obj_Text, 0, Time(ShiftFromRight), 0);
ObjectSetText('TextLabel_01', 'Test text', 12, 'Arial', clBlack);
end
else ObjectSet('TextLabel_01', OBJPROP_TIME1, Time(ShiftFromRight));
end;
exports
Init, Done, {OnParametersChange, }Calculate;
begin
end.
Добавлено: Чт ноя 26, 2009 6:23 am
jam
Ощущение, что после вызова окна настроек, меняется имя объекта.
И ещё вопрос к вам, Terranin
Нет ли каких недокументированных функций для работы с координатами экрана? А то как-то неудобно выходит - при изменении высоты подокна надписи конечно же съезжаются-разъезжаются. Похоже придётся выводить их в отдельное окно и периодически туда подглядывать. А отображение линий времени выхода новостей отдельным индюком сделать.
Или может вы планируете сделать поддержку obj_TextLabel? Было бы отлично.
Добавлено: Чт ноя 26, 2009 5:14 pm
Terranin
jam писал(а):Ощущение, что после вызова окна настроек, меняется имя объекта.
И ещё вопрос к вам, Terranin
Нет ли каких недокументированных функций для работы с координатами экрана? А то как-то неудобно выходит - при изменении высоты подокна надписи конечно же съезжаются-разъезжаются. Похоже придётся выводить их в отдельное окно и периодически туда подглядывать. А отображение линий времени выхода новостей отдельным индюком сделать.
Или может вы планируете сделать поддержку obj_TextLabel? Было бы отлично.
Недокументированных функций нет а поддержку статичного текста планируем. Так глядя на код вроде все нормально, надо потестировать.
С выводом текста проблемы, если переключиться на другой таймфрейм где нету окна осциллятора возникают ошибки. Так что текст лучше выводить на график.