Doesn't the while loop in the Button1 click handler block the main thread ? I remember that in Delphi, to do these things, I needed to incorporate an Application.ProcessMessage, which is not a very clean solution. You could use the OnTerminate event of the TThread class instead to re-enable your button as an alternative.
Joris Spriet --- "A.J. Venter" <[EMAIL PROTECTED]> wrote: > > > > > Mmmh, looking more closely to your code (I didn't > before, I was just > > replying to the assertion that you call > synchronize from the main > > thread) I don't think you should use synchronize > at all (maybe a mutex > > to coordinate the access to FRunning, but even > that may be overkill for > > a boolean): since you don't access the TStringList > unless the process > > has ended there's no problem of simultaneous > access from the main thread > > and the thread (and even if you wanted to do that > I'd prefer a mutex > > over synchronize). > > In fact (not knowing the internals of the > synchronize implementation, so > > I may be wrong) I cannot see how your thread can > work since you're in a > > busy loop waiting for the thread to finish, so > there's no way the main > > thread can schedule your synchronize call. > > > Okay, let me explain exactly what I wish to achieve. > I want to be able to stick a tmemo on a form, call > tthreadedprocess with a > command that takes a long time to run and has a lot > of output (lets say > ¨find /¨ for an example) - and have the output > scrolling into the tmemo LIVE > as it arrives, hence the call to synchronize every > time the tmemstream > reaches 2048 bytes. > > The main thread is not meant to be ANYWHERE in this > class, this class is meant > to create a thread, and then FEED the output of the > tprocess to the main > thread (in the calling appplication) LIVE. > > So while it´s true that I don´t use FOutPut in this > class -that is because I > want to be able to use it in the calling > application. > Having explained this, does it clarify why the code > looks as it does ? > > A.J. > -- > "80% Of a hardware engineer's job is application of > the uncertainty principle. > 80% of a software engineer's job is pretending this > isn't so." > A.J. Venter > Chief Software Architect > OpenLab International > http://www.getopenlab.com | +27 82 726 5103 > (South Africa) > http://www.silentcoder.co.za | +55 118 162 2079 > (Brazil) > > _________________________________________________________________ > To unsubscribe: mail > [EMAIL PROTECTED] with > "unsubscribe" as the Subject > archives at > http://www.lazarus.freepascal.org/mailarchives > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _________________________________________________________________ To unsubscribe: mail [EMAIL PROTECTED] with "unsubscribe" as the Subject archives at http://www.lazarus.freepascal.org/mailarchives
