Einzelnen Beitrag anzeigen

Nogge

Registriert seit: 15. Jul 2004
336 Beiträge
 
Delphi 7 Professional
 
#24

Re: WM_CopyData mit Boolschen Variablen

  Alt 1. Nov 2005, 21:39
Mmh, leider ist der Versuch fehlgeschlagen ;_;
cbData:=Length(SAPointer^) * SizeOf(ShortString); Mit dieser Länge erhalte ich nun zwar keine AV mehr, jedoch ist der Inhalt des arrays vollkommen willkürlich gefüllt. Hier mal mein Code vom Empfängerprogramm:
Delphi-Quellcode:
procedure TFMain.WMCopyData(var Msg: TWMCopyData);
type
  PStringArray = ^TStringArray;
  TStringArray = array of ShortString;
const
  MY_PLAY = 0;
  MY_ADD = 1;
var
  SAPointer : PStringArray;
  i : Integer;
  FileName : ShortString;
  [...]
begin
  SAPointer:=PStringArray(Msg.CopyDataStruct.lpData);
  if (SAPointer = nil) then exit;
  [...]
  try
    case Msg.CopyDataStruct.dwData of
      MY_PLAY :
        begin
          for i:=Low(SAPointer^) to High(SAPointer^) do
          begin
            FileName:=SAPointer^[i];
            [...]
          end;
        end;
      MY_ADD :
        begin
          for i:=Low(SAPointer^) to High(SAPointer^) do
          begin
            FileName:=SAPointer^[i];
            [...]
          end;
        end;
      MY_SHOW :
        begin
          [...]
        end;
    end;
  finally
    [...]
    // Einzelelemente freigeben
    for i:=High(SAPointer^) downto Low(SAPointer^) do
      SetLength(SAPointer^[i],0);
    // array freigeben
    SetLength(SAPointer^,0);
    Dispose(SAPointer);
  end;
end;
  Mit Zitat antworten Zitat