Autor Beitrag
Da_Knuddelbaer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 485



BeitragVerfasst: Mi 21.05.03 12:17 
Hi,
ich bastel gerade daran ein simples, zweidimensionales String-Array (0..20,0..20) per DXPlay-Kompo an andere zu verschicken. Die Verbindung etc. ist alles bereits gemacht und funktioniert auch. Auch Textnachrichten und Co lassen sich verschicken. Nur Arrays nicht?

Folgendes habe ich als TDXLevel unter Type deklariert:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
Const
     DX_ChatMessage           =     1;
     DX_ChatCommand           =     2;
     DX_Playerstatus          =     3;
     DX_Level                 =     4;

Type
     TDXLevel = Record
                  dwType: DWORD;
                  PlayerCount: Integer;
                  LevelBuild: Array[0..20,0..20] of String;
                end;



Und hier will ich das Array verschicken. Die Variabel MyArray ist bereits gefüllt, habe ich auch kontrolliert.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
// beim Klicken auf den Button
VAR
  LvlMsg:  ^TDXLevel;
  MsgSize, i, j: Integer;

begin
  MsgSize := SizeOF(TDXLevel);
  GetMem(LvlMsg,MsgSize);
  LvlMsg.dwType:=DX_Level;

  LvlMsg.PlayerCount:=2;

  For i := 0 To 20 Do
  For j := 0 To 20 Do LvlMsg.LevelBuild[i,j]:=MyLevel[i,j];

  DXPlay.SendMessage(DPID_AllPlayers,LvlMsg,MsgSize);
  FreeMem(LvlMsg);
end;


// bei procedure DXPLayMessage....
...
  if DXPlayMessageType(Data)=DX_Level then
      ShowMessage('Angekommen');
...


Irgendwas muss hier falsch sein, weil sobald der Host auf den Button klickt und die Nachricht versendet werden soll bekomme ich von dem anderen PC eine Fehlermeldung:
"Access violation at address 00404366 in module ... Read of address 7472616C."

Sprich das Programm greift auf eine Adresse zu wo nix steht bzw. er nicht zugreifen kann. Schätzungsweise ist die Länge der "Nachricht" falsch, aber ich wüsste nicht wie ich die Länge sonst ermitteln sollte...
Ich hoffe mir kann hier jemand helfen :)

Thx schonmal!
Knuddelbaer