[DUG] graphics stops updating
Ross Levis
ross at stationplaylist.com
Sun Jun 19 17:28:48 NZST 2005
I've notified the author of the audio suite of the problem. I'm not
accessing the thread directly, in fact, I only know it uses a thread
because the web page says so. My little app is only a few lines long
with some components on a form.
Perhaps I should not be doing UI stuff in this event. It is an event
triggered by the audio component when data is available. It is an IDE
published event so you would think it should handle UI stuff, but the
audio component probably doesn't want anything slowing down the internal
thread, otherwise, audio data could be lost.
So I may need to copy the data to a global variable and access it on a
timer as you suggested.
Cheers,
Ross.
----- Original Message -----
From: "Matt Comb" <matt at ferndigital.com>
To: "NZ Borland Developers Group - Delphi List" <delphi at ns3.123.co.nz>
Sent: Sunday, June 19, 2005 5:03 PM
Subject: Re: [DUG] graphics stops updating
I would consider creating something like a stats object as an
intermediary
between your reading thread and the updating on the main thread.
Something
along the lines of the following.
Update the values that you need in the update events from the read
thread,
then on the mainform have a timer which also reads from this object.
Matt.
type
TStatOb = class(Tobject)
private
fVal1:integer;
fSC_Val1:tCriticalSection;
function ReadVal1:integer;
procedure SetVal1(value:integer);
public
constructor create;
destructor destroy; override;
property Val1:integer read ReadVal1 write SetVal1;
end;
implementation
{ TStatOb }
constructor TStatOb.create;
begin
fSC_Val1:=tcriticalsection.create;
end;
destructor TStatOb.destroy;
begin
fSC_Val1.free;
inherited;
end;
function TStatOb.ReadVal1: integer;
begin
fSC_Val1.Enter;
result:=fval1;
fSC_Val1.Leave;
end;
procedure TStatOb.SetVal1(value: integer);
begin
fSC_Val1.Enter;
fval1:=value;
fSC_Val1.Leave;
end;
More information about the Delphi
mailing list