ambarka_max,
Префикс "А" используется в именах параметров методов, но не переменных. Использование переменной Result в процедуре также может ввести внешнего читателя в заблуждение.
Почему бы для повторяющегося участка кода не использовать процедуру?
procedure ShowColorInfo(AColor: TColor);
var
ColorInfo: string;
R,G,B: Byte;
begin
R:= GetRValue(AColor);
G:= GetGValue(AColor);
B:= GetBValue(AColor);
FmtStr(ColorInfo, '%s%.8x R=%d G=%d B=%d', [HexDisplayPrefix, AColor, R, G, B]);
SM(ColorInfo);
end;
, тогда получим
procedure TfrmVozrat.Button1Click(Sender: TObject);
begin
ShowColorInfo(clBtnFace);
ShowColorInfo(ColorToRGB(clBtnFace));
end;