TlgOnlineTrendControl
Александр Родин, ООО
"Нева Электрик"; 24.6.02
Динамически формирую вывод графиков с помощью subj.
В нем есть атрибуты BeginTime, EndTime, которые вроде как должны
определять начальное и конечное время вывода графиков. Вроде как
стоит поле, которое говорит, что они могут быть изменены
динамически. При открытии окна C-Action видим, что возвращаемое
значение должно иметь тип DATE (?!).
А теперь вопрос знатокам: Что это за тип DATE ? Собственно, какое
представление он имеет (число, структура, строка, или что) ?
Второй вопрос, какой из известных SetProp-функций пользоваться для
назначения данных атрибутов ?
Имеется ли в доках описание данного типа ?
Заранее спасибо.
Re: TlgOnlineTrendControl
Alexis;
24.6.02
импортируем и получаем:
inline DATE ICCTlgOnlineTrend::GetBeginTime ( ) {
DATE _result;
HRESULT _hr = get_BeginTime(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result;
}
inline void ICCTlgOnlineTrend::PutBeginTime ( DATE pvarBeginTime )
{
HRESULT _hr = put_BeginTime(pvarBeginTime);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
}
inline DATE ICCTlgOnlineTrend::GetEndTime ( ) {
DATE _result;
HRESULT _hr = get_EndTime(&_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _result;
}
inline void ICCTlgOnlineTrend::PutEndTime ( DATE pvarEndTime )
{
HRESULT _hr = put_EndTime(pvarEndTime);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
}
смотрим и видим:
typedef double DATE;
Re: TlgOnlineTrendControl
Евгений
Трунов; 25.6.02
DATE - это действительно тип данных double. Целая часть - число
дней, прошедших от 30.12.1899, дробная - относительная часть суток
в часе. Т.е., например, 28.10.2001 16:30:00 будет представляться
как 37192.6875 (GMT+2). Часто используется для представлении
времени в OCX-объектах.
Можно задавать BeginTime и EndTime как строки, т.е. как
sprintf(szBeginTime, "%02d.%02d.%4d %02d:%02d:%02d",
<аргументы>);
SetPropChar(<имя схемы>, <имя тренда>, "BeginTime",
szBeginTime);
Он поймёт :).
Re: TlgOnlineTrendControl
Александр Родин, ООО
"Нева Электрик"; 2.7.02
... да, спасибо... все заработало при подстановке строки...
теперь вот есть еще одна проблема... :)
Посредством ODK-шной функции TLGPressToolbarButton мы можем
осуществить опосредованное нажатие любой тулбарной кнопки. В
частности вызвать линейку (инструмент весьма удобный и нужный).
Вызов организован с экранной кнопки по нажатию определенного
хоткея, работа мышью исключается (работа происходит с SIMATIC PC
FI45, где работа мышью весьма нежелательна, потому как расположение
вертикально и "руки затекают" - фраза заказчика :). Вызов
обеспечили - линейка вывелась, стрелками можем линейку по экрану
двигать. Но закрыть ее обратно по тому же хоткею уже не
получается... да и другие кнопки тоже не в фокусе, поэтому их
хоткеи тоже не срабатывают. Хорошо, прописываем в скрипте кнопки
Set_Focus на нее саму же, чтобы не терять с ней связь. Но тогда
вызванную линейку двигать стрелочками уже не получается... %) Ну и
чего теперь делать ?..
Заранее спасибо.
Re: TlgOnlineTrendControl
Александр Родин, ООО
"Нева Электрик"; 17.7.02
... продолжу мучать глупыми вопросами... :)
Через все ту же функцию TLGPressToolbarButton можно включить
инструмент "линза". Включается. Но вот установка области увеличения
может быть выполнена только посредством мыши. А как сделать
выделение области с помощью клавиатуры ???
Re: TlgOnlineTrendControl
Александр Родин, ООО
"Нева Электрик"; 13.8.02
Сам себе отвечу... :)
По поводу линейки.
Если фокус установить не на кнопку, а на окно с графиками, то можно
и двигать линейку, и обработать кнопку, которая этот инструмент
закроет...
А вот по поводу линзы идей нет... пока... Может кто-нить что-нить
подсоветует ?.. %)
Заранее спасибо.