procedure TForm1.Timer1Timer(Sender: TObject);
var
Color_R, Color_G, Color_B, level: integer;
begin
level := BASS_ChannelGetLevel(RecChannel);
if CheckBox1.Checked
then begin
Color_R := round((LOWORD(level) / (32768 / 255)) - TrackBar1.Position);
Color_R := Color_R * 5
div 100 + Color_R_old * 95
div 100;
end else Color_R := 0;
if CheckBox2.Checked
then begin
Color_G := round((LOWORD(level) / (32768 / 255)) - TrackBar1.Position);
Color_G := Color_G * 5
div 100 + Color_G_old * 95
div 100;
end else Color_G := 0;
if CheckBox3.Checked
then begin
Color_B := round((HIWORD(level) / (32768 / 255)) - TrackBar1.Position);
Color_B := Color_B * 5
div 100 + Color_B_old * 95
div 100;
end else Color_B := 0;
if Color_R > Color_R_old
then Color_R_old := Color_R
else
if Color_R_old > 0
then Color_R_old := (Color_R_old - 20);
if Color_G > Color_G_old
then Color_G_old := Color_G
else
if Color_G_old > 0
then Color_G_old := (Color_G_old - 20);
if Color_B > Color_B_old
then Color_B_old := Color_B
else
if Color_B_old > 0
then Color_B_old := (Color_B_old - 20);
JvColorTrackBar4.Position := Color_R_old;
JvColorTrackBar5.Position := Color_G_old;
JvColorTrackBar6.Position := Color_B_old;
JvPanel3.Color :=
RGB(Color_R_old, Color_G_old, Color_B_old);
SendRGB(Color_R_old, Color_G_old, Color_B_old);
end;