[Gambas-user] Is it possible to receive events on an array of 'Process' objects?

Tobias Boege taboege at ...626...
Tue Sep 20 16:16:36 CEST 2016


On Tue, 20 Sep 2016, Phil Underhill wrote:
> Hi all,
> 
> I'm working on a project that would benefit from being able to receive
> events from an array of Process controls. I've been successful in
> creating the array, but the Process.Read and Process.Error events
> don't seem to be triggered once the controls are in the array.
> 
> For example...
> 
> Public myConns As New Process[]
> 
> Public Sub something()
>   Dim connShell as Process
>   Shell "/usr/bin/blah" For Read As "connShell"
>   myConns.Add(connShell)
> End
> 

connShell is Null when you add it to the myConns array. Just because you
call Shell and have a local Process variable, it doesn't magically get
filled with the process created by Shell. You have to assign Shell's return
value to the variable:

  Dim connShell As Process

  connShell = Shell "/usr/bin/blah" For Read As "connShell"
  myConns.Add(connShell)

I'm not sure if it shouldn't work anyway (even if your array does not hold
any Process object) as I suppose a Process object which is opened For Read
would be referenced by interpreter automatically and therefore not be
destroyed as soon as you leave the local scope (which I believe to be the
reason you receive no events).

But first you should just try what I suggested above and actually keep
references to your Process objects.

Regards,
Tobi

-- 
"There's an old saying: Don't change anything... ever!" -- Mr. Monk




More information about the User mailing list