Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 18. Jul 2002, 20:16
Moin Zusammen,

möglicher Weise habe ich jetzt schon mal die Ursache gefunden, wenn auch noch keine Lösung, um das Problem zu umgehen.

Ein Auszug aus der AMovie_TLB.pas:

Code:
procedure TActiveMovie.InitControlData;
const
  CEventDispIDs: array [0..7] of DWORD = (
    $00000001, $00000002, $00000003, $00000032, $000003E7, $00000033,
    $FFFFFD9F, $00000034);
  CControlData: TControlData2 = (
    ClassID: '{05589FA1-C356-11CE-BF01-00AA0055595A}';
    EventIID: '{B6CD6553-E9CB-11D0-821F-00A0C91F9CA0}';
    EventCount: 8;
    EventDispIDs: @CEventDispIDs;
    LicenseKey: nil (*HR:$00000000*);
    Flags: $00000008;
    Version: 401);
begin
  ControlData := @CControlData;
  TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnStateChange) - Cardinal(Self);
end;
Die Zeile

TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnStateChange) - Cardinal(Self);

wird angemeckert mit der Meldung:
Der linken Seite kann nichts zugewiesen werden.

Meine Vermutung: Ich hatte diese Zeile in der ursprünglichen Installation auskommentiert, um über diesen Punkt wegzukommen, und dieses einfach "verdrängt"

Falls jemand eine Idee hat, wie sich diese Klippe umschiffen lässt ...

BTW:
Ja, ich habe gesehen, dass es sich bei CControlData um eine Konstante handelt.


****EDIT****

Inzwischen habe ich schon versucht mit

Code:
var
  pControlDataWork : PControlData2;

begin
//  ControlData := @CControlData;
//  TControlData2(CControlData).FirstEventOfs := Cardinal(@@FOnStateChange) - Cardinal(Self);
  ControlData     := @CControlData;
  pControlDataWork := @CControlData;
  pControlDataWork^.FirstEventOfs := Cardinal(@@FOnStateChange) - Cardinal(Self);
end;
den Compiler auszutricksen.
Leider ohne Erfolg
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat