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

Непонятки с TMAType

Добавлено: Ср янв 31, 2007 9:33 am
Kvaz
вот этот код в окошке настройки стратегии выдает illegal value. Значение устанавливается, но при повторном заходе в окно настройки снова illegal value.

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

uses
  SysUtils,  Classes,  System, StrategyInterfaceUnit, TechnicalFunctions;

var
  MAType: TMAType;

procedure InitStrategy; stdcall;
begin

  RegOption('MAType', ot_EnumType, MAType);
  AddOptionValue('MAType', 'Simple (SMA)');
  AddOptionValue('MAType', 'Exponential (EMA)');
  AddOptionValue('MAType', 'Weighted (WMA)');
  AddOptionValue('MAType', 'Smoothed (SMMA)');
  MAType := ma_SMA;

end;
если MAType : integer, то ошибку не выдает, но не работает StrMAType. Что я делаю не так?

В принципе, легкая рихтовка StrMAType решила проблему, но как оно все-таки должно работать? :)

Re: Непонятки с TMAType

Добавлено: Пт фев 02, 2007 3:31 am
Terranin
Kvaz писал(а):вот этот код в окошке настройки стратегии выдает illegal value. Значение устанавливается, но при повторном заходе в окно настройки снова illegal value.

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

uses
  SysUtils,  Classes,  System, StrategyInterfaceUnit, TechnicalFunctions;

var
  MAType: TMAType;

procedure InitStrategy; stdcall;
begin

  RegOption('MAType', ot_EnumType, MAType);
  AddOptionValue('MAType', 'Simple (SMA)');
  AddOptionValue('MAType', 'Exponential (EMA)');
  AddOptionValue('MAType', 'Weighted (WMA)');
  AddOptionValue('MAType', 'Smoothed (SMMA)');
  MAType := ma_SMA;

end;
если MAType : integer, то ошибку не выдает, но не работает StrMAType. Что я делаю не так?

В принципе, легкая рихтовка StrMAType решила проблему, но как оно все-таки должно работать? :)
MAType и должно быть integer, поскольку ot_EnumType это эквивалент типа integer. Просто потом надо будет привести тип TMAType(MAType) где потребуется.