当前位置:主页>仓库管理软件> 列表

这样写不对吗? 找服装进销存软件破解

仓库管理软件版1楼: TMyBlock=record
m_username:string[16];
 SendToName:string[16];
m_stream:TStream;
end;
m_username是自己的用户名,SendToName是接收者的用户名,m_stream用来存储视频和音频流?
这样写不对吗?
如果不对,请问怎么写?

2楼: TMyBlock=record
m_username:string;
SendToName:string;
m_stream:TStream;
end; 如东莞速达软件

3楼: 不行呀
去掉字符限制也不行
如果我去掉m_stream:TStream;就可以正常传递,但加上就不行
难道这里面不能定义TStream类型?

4楼: 同意二楼

5楼: 对的………………

6楼: 我刚才复制的时候发现里面有一个全角的空格,删掉它!

仓库管理软件版7楼: procedure TClientForm.GrabberBuffer(sender: TObject; SampleTime: Double; pBuffer: Pointer; BufferLen: Integer);
var
Stream: TStream;
MyBlock:TMyBlock;
begin
Stream:=TStream.Create;
MyBlock.m_username:=''brucelee'';
try
if VideoWindow.VMRGetBitmap(Stream) then
begin
image.Picture.Bitmap.LoadFromStream(Stream);
MyBlock.m_stream:=Stream;
end;
Grabber.GetBitmap(Image1.Picture.Bitmap);
finally
Stream.Free;
end;

if ConnectForm.TCPClient.Connected then
begin
try
ConnectForm.TCPClient.WriteBuffer(MyBlock,SizeOf(MyBlock),true);
except
end;
end;
end;
服务端:
procedure TServerForm.TCPServerExecute(AThread: TIdPeerThread);
var
jpg: TJpegImage;
MyBlock:TMyBlock;
getstream:TStream;
begin
if AThread.Connection.Connected and not AThread.Terminated then
begin
getstream:=TStream.Create;
AThread.Connection.ReadBuffer(MyBlock,SizeOf(MyBlock));
listbox1.Items.Add(MyBlock.m_username);
getstream.CopyFrom(MyBlock.m_stream,SizeOf(MyBlock.m_stream));
getstream.Position:=0;
jpg := TJpegImage.Create;
jpg.LoadFromStream(getstream);
Image.Picture.Bitmap.Assign(jpg);
jpg.Free;
getstream.Free;
end;
end;
为什么服务端收不到?

8楼: 错:不能实例化TStream类
getstream:=TStream.Create;
Stream:=TStream.Create;
改: := TMemoryStream.Create;

9楼: 我改为TMemoryStream为什么还不行?
if ConnectForm.TCPClient.Connected then
begin
try
ConnectForm.TCPClient.WriteBuffer(MyBlock,SizeOf(MyBlock),true);
except
end;
end;
根本不能传送,如果把try...except end;去掉去出错
如果不去掉,只能把MyBlock.m_username:=''brucelee'';传过去,
stream传不过去,或是说接不到

10楼: stream不能直接传,事实上你只传了stream的指针,到了对方是无效指针
ConnectForm.TCPClient.WriteBuffer(MyBlock,SizeOf(MyBlock),true);
ConnectForm.TCPClient.WriteBuffer(MyBlock.memory,stream.size,true);

11楼: 楼上的意思是要传两次?
MyBlock.memory什么意思

12楼: MyBlock.memory才是实际的你存在stream内的数据
加上m_username, SendToName, 他们的地址不连续,所以要发二次 如库存商品软件

13楼: 错了,应该是MyBlock.memory^

仓库管理软件版14楼: MyBlock.memory?
是MyBlock.m_stream吧?
如果是MyBlock.memory,那么提示出错
可是我改成MyBlock.m_stream后,依然传不过去呀

15楼: MyBlock.m_stream.memory^

16楼: 传不过去
关闭窗口时还提示“Access violation at address 00E0495D. Write of address FFFFFF00”错误

17楼: Stream:=TStream.Create;
MyBlock.m_username:=''brucelee'';
try
if VideoWindow.VMRGetBitmap(Stream) then
begin
image.Picture.Bitmap.LoadFromStream(Stream);
MyBlock.m_stream:=Stream;
end;
Grabber.GetBitmap(Image1.Picture.Bitmap);
finally
Stream.Free; //你这里已经释放掉了
end;

18楼: 服务端这么写为什么收不到呢?
procedure TServerForm.TCPServerExecute(AThread: TIdPeerThread);
var
jpg: TJpegImage;
userBlock:TUserBlock;
getstream:TMemoryStream;
begin
if AThread.Connection.Connected and not AThread.Terminated then
begin
getstream:=TMemoryStream.Create;
AThread.Connection.ReadBuffer(userBlock.m_stream.memory^,userBlock.m_stream.Size);
jpg := TJpegImage.Create;
jpg.LoadFromStream(getstream);
Image.Picture.Bitmap.Assign(jpg);
jpg.Free;
getstream.Free;
end;
end;

19楼: TMyBlock=record
m_username:string[16];
 SendToName:string[16];
m_stream:pchar;
end;

20楼: read就不是userBlock.m_stream.Size了
AThread.Connection.ReadBuffer(userBlock.m_stream.memory^,userBlock.m_stream.Size);

仓库管理软件版21楼: 不是userBlock.m_stream.Size?
那是什么?

22楼: 要分二次读,因为是分二次发的
AThread.Connection.InputBuffer 如服装进销存软件破解

23楼: 拜托楼上大哥
能不能写的具体一点
我不会呀

24楼: TMyBlock=record
m_username:string[16];
 SendToName:string[16];
end;

procedure TClientForm.GrabberBuffer(sender: TObject; SampleTime: Double; pBuffer: Pointer; BufferLen: Integer);
var
Stream: TStream;
MyBlock:TMyBlock;
begin
Stream:=TStream.Create;
MyBlock.m_username:=''brucelee'';
try
if VideoWindow.VMRGetBitmap(Stream) then image.Picture.Bitmap.LoadFromStream(Stream);
Grabber.GetBitmap(Image1.Picture.Bitmap);

if ConnectForm.TCPClient.Connected then
begin
try
ConnectForm.TCPClient.WriteBuffer(MyBlock,SizeOf(MyBlock),true);
ConnectForm.TCPClient.WriteStream(MyBlock.m_stream,true);
except
end;
end;

finally
Stream.Free;
end;

end;

服务端:
procedure TServerForm.TCPServerExecute(AThread: TIdPeerThread);
var
jpg: TJpegImage;
MyBlock:TMyBlock;
getstream:TStream;
begin
if AThread.Connection.Connected and not AThread.Terminated then
begin
getstream:=TStream.Create;
AThread.Connection.ReadBuffer(MyBlock,SizeOf(MyBlock));
AThread.Connection.ReadStream(getstream,-1,true);
listbox1.Items.Add(MyBlock.m_username);
getstream.Position:=0;
jpg := TJpegImage.Create;
jpg.LoadFromStream(getstream);
Image.Picture.Bitmap.Assign(jpg);
jpg.Free;
getstream.Free;
end;
end;
试试吧,我没法做调试,请谅

25楼: 服务器端依然显示不了

26楼: 接受答案了.