anchor.diff:    rgb: TRGBTriple;
     c: TfpgColor;
   begin
  +  FViaRGB := True;  // revent recursive updates
     rgb.Red := StrToInt(edR.Text);
     rgb.Green := StrToInt(edG.Text);
     rgb.Blue := StrToInt(edB.Text);
     c := RGBTripleTofpgColor(rgb);
  -  ColorWheel1.SetSelectedColor(c);
  -  btnGetColorClicked(nil);
  +  ColorWheel1.SetSelectedColor(c);  // This will trigger ColorWheel and ValueBar OnChange event
  +  FViaRGB := False;
  +end;
  +
  +constructor TMainForm.Create(AOwner: TComponent);
  +begin
  +  inherited Create(AOwner);
  +  FViaRGB := False;
   end;
   
   procedure TMainForm.btnQuitClicked(Sender: TObject);
  
positive.code:   with edH do
    begin
      Name := 'edH';
      SetPosition(196, 280, 56, 26);
      TabOrder := 8;
      Text := '';
      FontDesc := '#Edit1';
    end;
  
    edS := TfpgEdit.Create(self);
    with edS do
    begin
      Name := 'edS';
      SetPosition(196, 308, 56, 26);
      TabOrder := 9;
      Text := '';
      FontDesc := '#Edit1';
    end;
  
    edV := TfpgEdit.Create(self);
    with edV do
    begin
      Name := 'edV';
      SetPosition(196, 336, 56, 26);
      TabOrder := 10;
      Text := '';
      FontDesc := '#Edit1';
    end;
  
    Label4 := TfpgLabel.Create(self);
    with Label4 do
    begin
      Name := 'Label4';
      SetPosition(284, 284, 56, 18);
      FontDesc := '#Label1';
      Hint := '';
      Text := 'Red';
  
negative.code: 
  procedure TMainForm.ColorChanged(Sender: TObject);
  begin
    UpdateHSVComponents;
    if not FViaRGB then
      UpdateRGBComponents;
  end;
  
  procedure TMainForm.RGBChanged(Sender: TObject);
  