Вниз
Скачать: 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.024 c
3-1082975508
Timon
2004-04-26 14:31
2004.05.23
Опять DBGRID. Помогите пожалуйста. Как сделать в DBGRID-е чтобы


1-1084025057
NoName
2004-05-08 18:04
2004.05.23
Наследование форм и поведение в них Action ов


6-1080819517
bytebutcher
2004-04-01 15:38
2004.05.23
Подскажите как использовать TIdTunnelMaster и TIdTunnelSlave?


4-1080969871
Андрей Арт
2004-04-03 09:24
2004.05.23
Программный выход из хранителя экрана


8-1078354024
Uber ASSA
2004-03-04 01:47
2004.05.23
Перерисовка Flash ролика




   Наверх