![]() |
Re: Array versendbar?
Delphi-Quellcode:
Hab ja definiert dass der bei jeder Mausbewegung die Arraywerte aktualisert und gesendet werden sollen. Aber er tut es nicht. Hat jemand ne Idee oder einen rettenden Hinweis für mich?:)
type
CustomRec = record Code:Array[0..6] of Integer; end; var Brett: TBrett; PosX,PosY,PosXX,PosYY,PosXXX,PosYYY,Modus:Integer; Rec: CustomRec; implementation procedure TBrett.BrettFlaecheMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Variablen neu definieren; Aktualiseren; Senden; end; procedure TZeichenbrett.Aktualisieren; begin Rec.Code[0]:=Modus; Rec.Code[1]:=PosX; Rec.Code[2]:=PosY; Rec.Code[3]:=PosXX; Rec.Code[4]:=PosYY; Rec.Code[5]:=PosXXX; Rec.Code[6]:=PosYYY; end; procedure TZeichenBrett.Senden; begin ClientSocket1.Socket.SendBuf(Rec,sizeof(Rec)); |
Re: Array versendbar?
Ja, du aktualisiert das Array, in dem du dem Array die Inhalte der Variablen PosX, PosY, PosXX, PosYY, PosXXX und PosYYY zuweist. Aber wo bitte aktualisiert du diese Variablen? Wenn die niemals neue Werte bekommen, wieso sollten sie dann auch neue beinhalten? Die denken sich das ja nicht aus und es gibt keine Automatismen dass bestimmte Variablennamen immer automatisch bestimmte Werte bekommen.
|
Re: Array versendbar?
Delphi-Quellcode:
Sry hab den Abschnitt vercheckt zu posten.
procedure TBrett.ZeichenFlaecheMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer); begin If RbNormal.Checked=True Then Modus:=1 else If RbWürfel.Checked=True Then Modus:=2 else If RbKreis.Checked=True Then Modus:=3 else Zeichenmodus:=1; PosXX:=PosX; PosYY:=PosY; PosX:=X; PosY:=Y; Aktualisieren; Senden; end; |
Re: Array versendbar?
Ok, du hast zwei Klassen. Einmal ein TBrett und dann eine TZeichenflaeche. Dann hast du dazu globale Variablen PosX,PosY,PosXX,PosYY,PosXXX,PosYYY. Diese Variablen sind auch definitiv nirgendwo anders nochmal definiert? Also z.B. im TBrett oder in TZeichenflaeche?
Und warum nutzt du überhaupt globale Variablen? Es ist (wie du jetzt vllt. schon merkst) schwer zu durchschauen und somit auch schlecht debugbar. Vor allem wenn eine Klasse die Variablen befüllen soll und eine ganz andere die wieder auslesen soll. Schon allein, da noch alle anderen genauso diese ändern können. Was sagt dir eigentlich der Debugger? Schonmal einen Haltepunkt gesetzt wo du die Variablen zuweist und genauso auch mal dort wo du die Variablen wieder ausliest? |
Re: Array versendbar?
Jo ist bisle unübersichtlich, ich weiß. ^^
Hab den Fehler gefunden. Bei der ClientRead-Methode fehlte mir vor dem
Delphi-Quellcode:
das Socket.
ReceiveBuf(Rec,SizeOf(Rec));
/Close Plz :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz