02-27-2019, 04:04 AM
A little delay in my response as I waited until my key for 15.0.18 came through and I could retest with it. Same result - we send from IntraWeb OK, but nothing is coming in.
The app I'm trying to send from is a vcl app. Here is the pipe receive code in IntraWeb that never gets invoked:
procedure TIWForm2.PipeClient1PipeMessage(Sender: TObject; Pipe: HPIPE;
Stream: TStream);
var
Msg : String;
I: integer;
begin
SetLength(Msg, Stream.Size div SizeOf(Char));
Stream.Position := 0;
Stream.Read(Msg[1], Stream.Size);
if length(Msg)>0 then begin
...do stuff
end;
I also put a package of code up on my web site www.baxeldata.com/special/Package.zip that has the source code of the IntraWeb app, a test pipe server, the compiled IntraWeb app, and the pipe unit code. The pipe package is the francois-piette update to the Russell Libby work you may be familiar with. To test, you may start the pipe server and then start CPLremote and a browser. You will see the two programs connect and if you click something like 'Play' and a number, and then 'Send', you will see that message arrive at the pipe server. Enter a message on the server like 'read30' and Send (or Broadcast), which CPLremote should understand, nothing arrives. Puttting a breakpoint at the SetLength(Msg... line never gets called.
If as you say, you have a pipe code snippet that you know works both ways, please share and I will try to build it in the code. I hope we can resolve this as controlling a running app via IntraWeb is, or should be, a valuable feature of your product.
Thank you.
The app I'm trying to send from is a vcl app. Here is the pipe receive code in IntraWeb that never gets invoked:
procedure TIWForm2.PipeClient1PipeMessage(Sender: TObject; Pipe: HPIPE;
Stream: TStream);
var
Msg : String;
I: integer;
begin
SetLength(Msg, Stream.Size div SizeOf(Char));
Stream.Position := 0;
Stream.Read(Msg[1], Stream.Size);
if length(Msg)>0 then begin
...do stuff
end;
I also put a package of code up on my web site www.baxeldata.com/special/Package.zip that has the source code of the IntraWeb app, a test pipe server, the compiled IntraWeb app, and the pipe unit code. The pipe package is the francois-piette update to the Russell Libby work you may be familiar with. To test, you may start the pipe server and then start CPLremote and a browser. You will see the two programs connect and if you click something like 'Play' and a number, and then 'Send', you will see that message arrive at the pipe server. Enter a message on the server like 'read30' and Send (or Broadcast), which CPLremote should understand, nothing arrives. Puttting a breakpoint at the SetLength(Msg... line never gets called.
If as you say, you have a pipe code snippet that you know works both ways, please share and I will try to build it in the code. I hope we can resolve this as controlling a running app via IntraWeb is, or should be, a valuable feature of your product.
Thank you.