Код:
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if MouseDowned then
begin
X:=X+10;
Y:=Y+10;
VScreen.Canvas.LineTo(X, Y);
serversocket1.socket.connections[1].sendtext('linet¶'+IntToStr(X)+'='+IntToStr(Y));
PaintBox1Paint(nil);
end;
end;
Вот при движении рисую и отправляю координаты, там все отрисовывается как надо, но в если я буду отправлять с атрибутами и прочим, то в это время же, рисовать человек у себя тоже может, и выйдет что если сменить атрибут то сменится и у тебя, и в это время могут то линии другие начиркаться, то твой цвет в другой перейдет.
Поэтому я и хотел сделать две переменные.
Код:
VScreen: T8Bit;
VScreen2: T8Bit;
Одна твоя, другая второго человека, чтобы косяков не было такихю
Код:
VScreen := T8Bit.Create;
VScreen.Init(PaintBox1.Width + 20, PaintBox1.Height + 20);
VScreen.Canvas.Pen.Color := clBlack;
VScreen.Canvas.Pen.Width := 5;
VScreen2:= T8Bit.Create;
VScreen2.Init(PaintBox1.Width + 20, PaintBox1.Height + 20);
VScreen2.Canvas.Pen.Color := clBlack;
VScreen2.Canvas.Pen.Width := 5;
создаются они так
сам класс 8бит
Код:
T8Bit = class(TBitmap) // класс восьмибитной картинки с градациями серого
private
Scan: array[0..1023{этим числом ограничена максимальная высота}] of PByte;
BitHeight, BitWidth:Integer;
public
constructor Create; override;
procedure Init(AWidth, AHeight: Integer);
procedure Clear(Color: Byte);
end;
init процедура что при создании
Код:
procedure T8Bit.Init(AWidth, AHeight: Integer);
var i:Integer;
Pal:PLogPalette;
NewPal:HPalette;
begin
PixelFormat := pf8bit;
Width := AWidth;
Height := AHeight;
BitHeight:=AHeight;
BitWidth:=AWidth;
GetMem(Pal, 256*4 + 40);
Pal.palVersion := $300;
Pal.palNumEntries := 256;
for i := 0 to 255 do
begin
Pal.palPalEntry[i].peRed := Byte(i);
Pal.palPalEntry[i].peGreen := Byte(i);
Pal.palPalEntry[i].peBlue := Byte(i);
Pal.palPalEntry[i].peFlags:=0;
end;
NewPal := CreatePalette( Pal^ );
Palette := NewPal;
GDIFlush;
FreeMem(Pal);
for i:=0 to BitHeight-1 do
begin
Scan[i]:=ScanLine[i];
FillChar(PByte(Scan[i])^, AWidth, 255);
end;
end;
А в приеме же из пакета вырезаются координаты и отрисовываются, клиентская при рисовке отправляет, и серверная тоже при рисовке отправляет, при получении обе отрисовывают.