ich versuche gerade ein Beispiel aus Delphi in Lazarus umzusetzen: http://delphi.about.com/od/windowsshell ... pydata.htm
Code: Alles auswählen
TCopyDataType = (cdtString = 0, cdtImage = 1, cdtRecord = 2);
TSampleRecord = packed record
s : string[50];
i : integer;
d : TDateTime;
end;
TWMCopyData = packed record
Msg: Cardinal;
From: HWND; // Handle of the Window that passed the data
CopyDataStruct: PCopyDataStruct; // data passed
Result: Longint; // Use it to send a value back to the "Sender"
end;
procedure TForm1.HandleCopyDataRecord(copyDataStruct: PCopyDataStruct);
var
sampleRecord : TSampleRecord;
begin
sampleRecord.s := TSampleRecord(copyDataStruct.lpData^).s;
sampleRecord.i := TSampleRecord(copyDataStruct.lpData^).i;
sampleRecord.d := TSampleRecord(copyDataStruct.lpData^).d;
Memo1.Lines.Add(Format('Received record at %s',[DateToStr(Now)]));
Memo1.Lines.Add(Format('sampleRecord.s = %s',[sampleRecord.s]));
Memo1.Lines.Add(Format('sampleRecord.i = %d',[sampleRecord.i]));
Memo1.Lines.Add(Format('sampleRecord.d = %s',[DateToStr(sampleRecord.d)]));
end;
Code: Alles auswählen
sampleRecord.s := TSampleRecord(copyDataStruct.lpData^).s;
unit_server.pas(129,50) Error: Illegal qualifier
Wie wird das korrekt geschrieben?
-------------------------------------
COPYDATASTRUCT aus der struct.inc??? was ist das denn?
Code: Alles auswählen
COPYDATASTRUCT = record
dwData : ULONG_PTR;
cbData : DWORD;
lpData : PVOID;
end;
tagCOPYDATASTRUCT = COPYDATASTRUCT;
TCOPYDATASTRUCT = COPYDATASTRUCT;
PCOPYDATASTRUCT = ^COPYDATASTRUCT;