For your timer situation:
In your project, create a new class, name it MyTimer. Then, set its super as
"Timer".

Now you can instantiate MyTimer anywhere in code, just like any other
regular object. Be sure to save a reference to it, as I'm not sure the timer
would still fire if it's been orphaned: the timer would probably be deleted
instead.


On 6/13/06, Paweł Modzelewski <[EMAIL PROTECTED]> wrote:

Thank You very much Keith!
Your suggestion was very helpfull. What I came to, waiting for an answer,
was putting in my routine as "pause" those lines:

    Do Until (sRetData <> "" Or bTimeout = True)
    Loop

But as You, of course, know it just could not work. Then came Your post
and
"eureka"!
App.DoEvents()  was the key! :) Thank You once more!

Essential frgment of the routine now looks like this:
    Do Until (sRetData <> "" Or bTimeout = True)
        App.DoEvents()
    Loop

I have also one question concerning Timer class. I have custom class just
to
manage those serial devices I mentioned in my first post. For the
initialization routine I would like to create object of the Timer class
for
the control of serial connection timeouts (I can't find anything about
timeouts for Serial class in documentation) and I have to do it manually.
How can I set 'Action' event for such manual Timer. My current solution is
to use the Timer object which is another property of Window object. But
this
is not an elegant way to do it, I suppose, because this timer is needed
only
in the custom class and this class lays even one step lower in the class
hierarchy so I have to use constructions like "MainWindow.MyTimer.Enabled=
True" to control the timer.

Once more I would be grateful for help.
Regards,
Pawel

----- Original Message -----
From: "Keith Bennett" <[EMAIL PROTECTED]>
To: "Getting Started" <[email protected]>
Sent: Tuesday, June 13, 2006 8:33 PM
Subject: Re: Pause ver. 2.0


> What you could do is to create a function called
WaitUntilSomethingIsDone,
> then in that function you simply poll whatever it is you're waiting for,
> and
> only return when it's finished. Then in the function that you want to
> pause,
> you call that function.
>
> An example of WaitUntilSomethingIsDone, using UserCancelled:
>
> Sub WaitUntilSomethingIsDone()
>  While UserCancelled = False
>    App.DoEvents() // this is *NOT* compatible with threads! you should
use
> App.SleepCurrentThread() if you plan to do this in a thread!
>  Wend
> End Sub
>
> Another example, using a socket:
> (MySocket is a Socket, with a property MySocket.ReceivedSomething As
> Boolean, it is assumed that ReceivedSomething is set in the
> MySocket.DataAvailable event)
> Sub MySocket.WaitUntilSocketReceivedSomething()
>  While Me.ReceivedSomething = False
>    App.DoEvents() // this is *NOT* compatible with threads! you should
use
> App.SleepCurrentThread() if you plan to do this in a thread!
>  Wend
> End Sub
>
> Hope this helps.
>
>
>
> On 6/13/06, Pawel Modzelewski <[EMAIL PROTECTED]> wrote:
>>
>> Hello,
>> I've question quite similar to the previous topic. What I want is to
>> pause
>> some method in which serial communications is proccessed until the
answer
>> arrives. It goes something like that:
>>
>>   For i As Integer = 0 To 255
>>     Write(serialCommand)
>>     XmitWait
>>
>>     {PAUSE until there is an answer from some serial device}
>>
>>     If sRetData Than
>>         device = new Device(Hex(I))
>>         aDevices.Append device
>>     End If
>>   Next
>>
>> In DataAvailable event handler I have:
>>     sRetData = ReadAll
>>
>> sRetData is the very same class properity
>>
>> To explain the situation a bit more : I have automated controller
>> connected
>> to the serial port of the host computer. Some more devices are
connected
>> to
>> that controller to create measuring network. Each device has an
address.
>> I
>> can control each device directly with ASCII commands when I know it's
>> address. The routine above is to initilaze such network during
>> application
>> start (because devices changes from time to time) to know what devices
>> work
>> and on what addresses. When I try this routine without the pause it
>> return
>> with the information that there is no device connected and I suppose it
>> is
>> because any device is even able to answer while the main loop finishes.
>> I have to say that I'm totally RB newbie so please forgive me if the
>> problem
>> is trivial.
>> I would be very grateful for any help, best regards
>> Pawel
>>
>> _______________________________________________
>> Unsubscribe or switch delivery mode:
>> <http://www.realsoftware.com/support/listmanager/>
>>
>> Search the archives of this list here:
>> <http://support.realsoftware.com/listarchives/lists.html>
>>
>
>
>
> --
> Keith Bennett, tA-Kane
> Software developer and Macintosh enthusiast
>
> Free iPods!!!
> http://www.freeiPods.com/?r=10867472
> _______________________________________________
> Unsubscribe or switch delivery mode:
> <http://www.realsoftware.com/support/listmanager/>
>
> Search the archives of this list here:
> <http://support.realsoftware.com/listarchives/lists.html>
>

_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>




--
Keith Bennett, tA-Kane
Software developer and Macintosh enthusiast

Free iPods!!!
http://www.freeiPods.com/?r=10867472
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>

Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>

Reply via email to