Доброго времени суток!
Предыстория такая: надумал написать для себя индикатор новостей. Поскольку TextLabel в FT еще не поддерживается (я правильно понял?) и простой текст в угол экрана никак не сориентируешь, решил выводить текст в подокно. Пока там для теста одна единственная надпись.
Так вот, после того, как я просто открываю и закрываю окно настроек индикатора, этот текст дублируется. И в подокне индюка их становится уже два. и т.д. Подскажите, что неправильно делаю, как побороть?
OnParametersChange никак не обрабатываю.
Дублируется текст, содаваемый индикатором
-
- Сообщения: 8
- Зарегистрирован: Сб окт 03, 2009 9:36 am
Дублируется текст, содаваемый индикатором
Лучше сделать и жалеть, чем не сделать и жалеть.
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Re: Дублируется текст, содаваемый индикатором
Киньте код который это делает, так сложно сказать.jam писал(а):Доброго времени суток!
Предыстория такая: надумал написать для себя индикатор новостей. Поскольку TextLabel в FT еще не поддерживается (я правильно понял?) и простой текст в угол экрана никак не сориентируешь, решил выводить текст в подокно. Пока там для теста одна единственная надпись.
Так вот, после того, как я просто открываю и закрываю окно настроек индикатора, этот текст дублируется. И в подокне индюка их становится уже два. и т.д. Подскажите, что неправильно делаю, как побороть?
OnParametersChange никак не обрабатываю.
Asta la vista
Mike
Mike
-
- Сообщения: 8
- Зарегистрирован: Сб окт 03, 2009 9:36 am
Ок, вот он:
Код: Выделить всё
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.
Лучше сделать и жалеть, чем не сделать и жалеть.
-
- Сообщения: 8
- Зарегистрирован: Сб окт 03, 2009 9:36 am
Ощущение, что после вызова окна настроек, меняется имя объекта.
И ещё вопрос к вам, Terranin
Нет ли каких недокументированных функций для работы с координатами экрана? А то как-то неудобно выходит - при изменении высоты подокна надписи конечно же съезжаются-разъезжаются. Похоже придётся выводить их в отдельное окно и периодически туда подглядывать. А отображение линий времени выхода новостей отдельным индюком сделать.
Или может вы планируете сделать поддержку obj_TextLabel? Было бы отлично.
И ещё вопрос к вам, Terranin
Нет ли каких недокументированных функций для работы с координатами экрана? А то как-то неудобно выходит - при изменении высоты подокна надписи конечно же съезжаются-разъезжаются. Похоже придётся выводить их в отдельное окно и периодически туда подглядывать. А отображение линий времени выхода новостей отдельным индюком сделать.
Или может вы планируете сделать поддержку obj_TextLabel? Было бы отлично.
Лучше сделать и жалеть, чем не сделать и жалеть.
- Terranin
- Site Admin
- Сообщения: 846
- Зарегистрирован: Вс июл 23, 2006 12:01 pm
Недокументированных функций нет а поддержку статичного текста планируем. Так глядя на код вроде все нормально, надо потестировать.jam писал(а):Ощущение, что после вызова окна настроек, меняется имя объекта.
И ещё вопрос к вам, Terranin
Нет ли каких недокументированных функций для работы с координатами экрана? А то как-то неудобно выходит - при изменении высоты подокна надписи конечно же съезжаются-разъезжаются. Похоже придётся выводить их в отдельное окно и периодически туда подглядывать. А отображение линий времени выхода новостей отдельным индюком сделать.
Или может вы планируете сделать поддержку obj_TextLabel? Было бы отлично.
С выводом текста проблемы, если переключиться на другой таймфрейм где нету окна осциллятора возникают ошибки. Так что текст лучше выводить на график.
Asta la vista
Mike
Mike