Hallo,
es gibt folgende Klasse:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| type TSlot = class(TThread) function Channel:Integer; private protected procedure Execute; override; public constructor Create(new_id:integer); destructor Destroy; override;
var id : integer; end; |
Und dann noch das Array:
Delphi-Quelltext
1:
| var Slots:array[1..480] of TSlot; |
Wieso kann ich keinen Pointer auf die Funktion
Channel erhalten? Auf normale Funktionen kann
man ohne Weiteres Pointer erhalten, wieso in
meinem Falle nicht?
Ich erhalte immer E2036 Variable erforderlich.
Siehe hier:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| var P:Pointer, id:integer;
begin id:=9; P:=@Slots[id].Channel; end; |
Nachtrag: Selbstverständlich wird das Array zuvor noch initialisiert:
Delphi-Quelltext
1: 2:
| for i:=1 to 480 do Slots[i]:=TSlot.Create(i); |
Vielen Dank!
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt