Вниз
Скачать: CL | DM;

Динамическое определение типа?   Найти похожие ветки 

 
Erik ©   (2004-05-07 13:45) [0]

Как мне лучше всего сделать это конструкцию динамической?
 TActiveEvent = (actExit, actSend);
 RAction = record
   Event: array[TActiveEvent] of THandle;
   Call: array[TActiveEvent] of TNotifyEvent;
 end;
Тоесть я хочу переопределять TActiveEvent при вызове конструктора. Есть одно ограничение:
WaitForMultipleObjects(Ord(High(tmEvent.Event)) + 1, @tmEvent.Event, false, INFINITE)


 
Erik ©   (2004-05-07 13:48) [1]

Возможно мне ненадо делать это в RunTime, но как это коректно подставить компилятору несоображу. Использую при создании наследника от базового класа.


 
Digitman ©   (2004-05-07 13:51) [2]


> при вызове конструктора


конструктора чего ?


> Как


никак.
выбранный тип поля Event не подразумевает никакой "динамичности" - следует определить его либо как дин.массив либо как класс. поддерживающий некий динамически формируемый список


 
Digitman ©   (2004-05-07 13:57) [3]

т.е. речь идет о compile-time ?

а в чем некорректность ? компилятор успешно "проглатывает" все упомянутые конструкции ..


 
Erik ©   (2004-05-07 15:25) [4]

Я хочу переоределить в потомке TActiveEvent. Например из пяти команд. А как это красиво описать еще недодумался.


 
Digitman ©   (2004-05-07 15:27) [5]


> в потомке TActiveEvent


о каком таком "потомке" может идти речь, если это не класс ?


 
Erik ©   (2004-05-07 15:57) [6]

Это конечно не клас, но класс использует record.
 TCustomThread = class(TThread)
 private
   fActive: Boolean;
   tmEvent: PAction;
//    tmEvent: RAction;
.......
procedure TCustomThread.SetEvent;
var
 i: TActiveEvent;
begin
 for i := Low(tmEvent.Event) to High(tmEvent.Event) do
 begin
   tmEvent.Event[i] := CreateEvent(nil, false, false, nil);
 end;
end;
....
Это пример а в потомке мне хочется иметь больше событий.


 
Digitman ©   (2004-05-07 16:07) [7]

все равно - непонятно, в чем проблема ...


 
Григорьев Антон   (2004-05-07 16:12) [8]

Нету в Delphi параметризованных типов, так что ничего не получится.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
7-1081412432
Stas
2004-04-08 12:20
2004.05.23
Изменения подписи чужой программы


8-1078229290
gagarin
2004-03-02 15:08
2004.05.23
эффекты DirectX


1-1083915397
Sagrist
2004-05-07 11:36
2004.05.23
есть ли функция преобразования типа Date в тип Variant?


14-1083738498
KSergey
2004-05-05 10:28
2004.05.23
Правда/не правда


3-1082982169
Dr.Alex
2004-04-26 16:22
2004.05.23
CGI & Interbase




   Наверх