Einzelnen Beitrag anzeigen

Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#11

AW: Wie erstelle ich einen Zeiger auf die Klasseninstanz

  Alt 13. Jan 2011, 11:52
Delphi-Quellcode:
type
  TMyClass = class(...)
  public
    procedure CallbackProc(pAddr: PAmsAddr; pNotification: PAdsNotificationHeader);
    procedure InitCallback;
  end;

procedure Callback(pAddr: PAmsAddr; pNotification: PAdsNotificationHeader; hUser: Longword); stdcall;
begin
  TMyClass(hUser).CallbackProc(pAddr,pNotification);
end;

procedure TMyClass.CallbackProc(pAddr: PAmsAddr; pNotification: PAdsNotificationHeader);
begin
end;

procedure TMyClass.InitCallback;
var
  Result: ...;
begin
  Result:=AdsSyncAddDeviceNotificationReq(@serverAddr,ADSIGRP_DEVICE_DATA,
                                          ADSIOFFS_DEVDATA_ADSSTATE,
                                          @adsNotificationAttrib,
                                          @Callback, //hier steht die Adresse der Callback-Routine
                                          Longword(self), //an dieser Stelle will ich den Zeiger der Klasseninstanz übergeben
                                          @hDevNotification);
end;
P.S.: Da war Deep-Sea schneller - aber auch kürzer...
Thomas Nitzschke

Geändert von Thom (13. Jan 2011 um 11:59 Uhr)
  Mit Zitat antworten Zitat