Zitat von
SirThornberry:
Da es bei einem Dynamischen Array aber wie bei einem String ist (ist ein Zeiger der auf die zusammenhängenden Datein zeigt), kannst du auch einfach den Bereich angeben auf den der ArrayPointer zeigt.
Die Methode gefällt mir. Allerdings bin ich gerade noch im Hinblick auf
cbData rastlos:
Delphi-Quellcode:
type
PStringArray = ^TStringArray;
TStringArray = array of String[255];
[...]
var
SAPointer : PStringArray;
[...]
if (MainApp > 0) and (SLData.Count > 0) then
begin
New(SAPointer);
SetLength(SAPointer^,SLData.Count);
for i:=0 to SLData.Count-1 do
SAPointer^[i]:=SLData.Strings[i];
with CDS do
begin
dwData:=LoWord(lpici.lpVerb); // MY_PLAY(0) oder MY_ADD(1)
cbData:=???;
lpData:=SAPointer;
end;
SendMessage(MainApp,WM_COPYDATA,0,LParam(@CDS));
end;
Müsste ich die Länge des arrays mit der max. Länge (=256) der Strings multiplizieren?