unit ShowThreadPars;
interface
uses
Windows, Messages, Classes, SysUtils, Forms, Variants, Graphics, Controls,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, ParFrame;
type
ShowThread =
class(TThread)
procedure SetData(Value:Byte);
procedure ParsOut;
function SetColor(Value:Byte;
index:Byte): TColor;
protected
procedure Execute;
override;
end;
Var
tParsindex : Byte;
// Rückgabewert
tTrackbarValue : Byte;
// Rückgabewert
tLabelValue :
String;
// Rückgabewert
tShapeColor : Tcolor;
// Rückgabewert
tShapeValue : Byte;
tDmxAdr : Byte;
tDMXValue: Byte;
tFrames : Integer;
tProgRunOld :
array [1..32]
of Byte;
tProgRunTemp :
array [1..2,1..32]
of Byte;
tProgStepTemp : Byte = 1 ;
implementation
uses ProLightControlForm;
// -----------------------------------------------------------------------------
procedure ShowThread.Execute;
Var
I : Byte;
begin
// stopen des thread durch hauptprogramm
while fThreadParExit
do
begin
-------------------------------------------------------------------------------------
'
PARMAX' ist eine Variabel aus dem Hauptprogramm die sich aber jederzeit ändern kann
auch wärend der Tread läuft
-------------------------------------------------------------------------------------
// hauptschleife für alle parser
For i:= 1
to ParMax
do
begin
.
.
.
-------------------------------------------------------------------------------
HIER GREIFE ICH AUF VARIABLE IM HAUPTTREAD ZU UM SIE ZU LESEN BZW. ZU SCHREIBEN
-------------------------------------------------------------------------------
tDmxAdr := ParCount[i,1];
// dmx adresse des pars hohlen
if fStandbyActive
then
begin
Device[tDmxAdr].DMXP := ProgRun[ProgStep,i];
// daten in ausgabe-array zurückschreiben
tProgRunOld[i] := ProgRun[ProgStep,i];
// hilfsarray für flash funktion...
end else begin
Device[tDmxAdr].DMXP := tProgRunOld[i];
// daten aktuell halten
end;
.
.
.
---------------------------------------
HIER SCHREIBEN ICH DIREKT
IN DEN
RECORD
---------------------------------------
if Device[tDmxAdr].ParStatus = 1
Then Device[tDmxAdr].DMXP := 255;
SetData(tDmxAdr);
// ausgabedaten berechnen
.
.
.
-----------------------------
AKTUALISIEREN DER
VCL OBJEKTE
-----------------------------
if tProgRunTemp[1,tDmxAdr] <> tProgRunTemp[2,tDmxAdr]
then
// Ausgabe visualisierung
Synchronize(ParsOut);
tProgRunTemp[2,tDmxAdr]:=tProgRunTemp[1,tDmxAdr];
sleep(1);
end;
// end For next
end;
end;
// -----------------------------------------------------------------------------
// end For next
end;
end;
// -----------------------------------------------------------------------------
procedure ShowThread.ParsOut;
Begin
ProLightForm.Thread_Parasync(tParsindex, tTrackbarValue,tLabelValue, tShapeColor)
end;
// -----------------------------------------------------------------------------
procedure ShowThread.SetData(Value:Byte);
Var
dmxValueStr :
String;
begin
tShapeValue := Device[tDmxAdr].ParColorSet;
// Colorindex holen
tDMXValue := Device[tDmxAdr].ParDmxOut;
// Programmwert holen
tProgRunTemp[1,tDmxAdr]:=tDMXValue;
// nach speedfader
.
.
.
.