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

Необходимая версия Дельфи для компиляции DLL

Добавлено: Пн сен 19, 2011 5:23 pm
Goodman
Дельфи 5 мало чтоли? Нужно минимум 7 ?

Попробовал пятым компильнуть файл-пример - ошибки:

на строку:
(PERIOD_M1 = 0,

ругается:
[Error] IndicatorInterfaceUnit.pas(80): ',' or ')' expected but '=' found


ПС
И включите пожалуйста в форуме опцию чтобы можно было подписаться на какую-либо конкретную тему, в том плане что новые ответы будут приходить на мыл.
В буллетинах есть такое.

Добавлено: Вт сен 20, 2011 6:24 pm
FT Support
Здравствуйте,

пожалуйста приведите полный код.
5-й дельфи мы честно говоря компилировать не пробовали.
и почему именно 5 ?

P.S. похоже в нашей версии phpBB нет возможности включить подписку на темы, которые Вы не создавали и в которых не участвовали. Если очень нужно подписаться, то можно оставить в тех темах какие-то сообщения.

Добавлено: Вт сен 20, 2011 6:44 pm
Goodman
FT Support писал(а): 5-й дельфи мы честно говоря компилировать не пробовали.
и почему именно 5 ?
Просто у меня стоит пятый и меня он всем устраивает, а другого нет :D

Просто открываю ваш файл из примеров MovingAverage.dpr в среде Дельфи, запускаю компиляцию и он пишет эти ошибки для юнита IndicatorInterfaceUnit

-------------------------------------------------------------------------------
полный код:

library MovingAverage;

uses
graphics,
IndicatorInterfaceUnit,
TechnicalFunctions in 'TechnicalFunctions.pas';

var
// External variables
period: integer;
Shift: integer;
MAtype: integer;
ApplyToPrice: integer;

// Buffers
SMA: TIndexBuffer;


//---------------------------------------------------------------------------
// Initialize indicator
//---------------------------------------------------------------------------
procedure Init; stdcall;
begin
// define properties
IndicatorShortName('Moving average');
SetOutputWindow(ow_ChartWindow);

// register options
AddSeparator('Common');

RegOption('Period', ot_Integer, period);
SetOptionRange('Period', 1, MaxInt);
period := 8;

RegOption('Shift', ot_Integer, Shift);
Shift := 0;

RegMATypeOption(MAtype);

RegApplyToPriceOption(ApplyToPrice);

// create buffers
IndicatorBuffers(1);
SMA := CreateIndexBuffer;
SetIndexBuffer(0, SMA);
SetIndexStyle(0, ds_Line, psSolid, 1, clYellow);
SetIndexLabel(0, 'MA');
end;

//---------------------------------------------------------------------------
// Deinitialize indicator
//---------------------------------------------------------------------------
procedure Done; stdcall;
begin

end;

//---------------------------------------------------------------------------
// Calculate requested bar
//---------------------------------------------------------------------------
procedure Calculate(index: integer); stdcall;
begin
SMA[index] := GetMA(index, shift, period, TMAType(MAtype), TPriceType(ApplyToPrice),
SMA[index + 1]);

// recalculate last shifted value if shift < 0
if (shift < 0) and (index = 0) and (Bars > abs(shift)) and (Bars > period) then
Calculate(abs(shift));
end;

exports

Init, Done, Calculate;

end.

------------------------------------------------------------------------------

Он у вас есть :D

IndicatorInterfaceUnit тоже есть у вас, копировать сюда не стану, он большой

Добавлено: Вт сен 20, 2011 6:46 pm
Goodman
фрагмент из IndicatorInterfaceUnit
на который ругается компилятор:

// timeframe
TTimeframe =
(PERIOD_M1 = 0,
PERIOD_M5 = 1,
PERIOD_M15 = 2,
PERIOD_H1 = 3,
PERIOD_H4 = 4,
PERIOD_D1 = 5,
PERIOD_W1 = 6);

// option type