Color_G_old und Co. mußt du natürlich extern haben, da diese ja die Funktion, bis zum nächsten Aufruf, überleben sollen
Also am Besten wohl im Private-Abschnitt deiner Form.
Delphi-Quellcode:
type
TForm1 =
class(TForm)
private
{ Private-Deklarationen }
Color_R_old, Color_G_old, Color_B_old: Integer;
public
{ Public-Deklarationen }
end;
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(HIWORD(level) / 255) + TrackBar1.Position);
Color_R := Color_R * 10
div 100 + Color_R_old * 90
div 100;
Color_R_old := Color_R;
end else Color_R := 0;
if CheckBox1.Checked
then begin
Color_G := (round(HIWORD(level) / 255) + TrackBar1.Position);
Color_G := Color_G * 10
div 100 + Color_G_old * 90
div 100;
Color_G_old := Color_G;
end else Color_G := 0;
if CheckBox1.Checked
then begin
Color_B := (round(HIWORD(level) / 255) + TrackBar1.Position);
Color_B := Color_B * 10
div 100 + Color_B_old * 90
div 100;
Color_B_old := Color_B;
end else Color_B := 0;
JvColorTrackBar4.Position := Color_R;
JvColorTrackBar5.Position := Color_G;
JvColorTrackBar6.Position := Color_B;
JvPanel3.Color :=
RGB(Color_R, Color_G, Color_B);
SendRGB(Color_R, Color_G, Color_B);
end;
Aber mal 'ne Frage, kann es sein, daß die Berechnungen für R, G und B gleich sind?
Und wenn ja, warum dann 3-Mal berechnen und nicht nur einmal?
PS: prüfe niemals auf TRUE ... gibt aber schon genügend Threads, welche das WARUM erklären