Показать сообщение отдельно
  #14  
Старый 14.03.2011, 18:00
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

как-то вот так примитивно:

Код:
function Bright(Color: TColor; BrightPercent: Byte): TColor;
var
  r, g, b: Byte;
begin
  Color := ColorToRGB(Color);
  r := GetRValue(Color);
  g := GetGValue(Color);
  b := GetBValue(Color);
  r := r + muldiv(255 - r, BrightPercent, 100);
  g := g + muldiv(255 - g, BrightPercent, 100);
  b := b + muldiv(255 - b, BrightPercent, 100);
  Result := RGB(r, g, b);
end;

procedure BrightBmp(Bmp: TBitmap; BrightPercent: byte);
var
  x,y: integer;
  col: TColor;
begin
  for y:=0 to Bmp.Height do
    for x:=0 to Bmp.Width do
    begin
      col := Bmp.Canvas.Pixels[x,y];
      Bmp.Canvas.Pixels[x,y] := Bright(col,BrightPercent);
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Bmp: TBitmap;
begin
  StringGrid1.Enabled := False;
  Bmp := TBitmap.Create;
  Bmp.Width := StringGrid1.Width;
  Bmp.Height := StringGrid1.Height;
  Bmp.Canvas.CopyRect(Bmp.Canvas.ClipRect,StringGrid1.Canvas,StringGrid1.Canvas.ClipRect);
  BrightBmp(Bmp,50);
  StringGrid1.Canvas.CopyRect(StringGrid1.Canvas.ClipRect,Bmp.Canvas,Bmp.Canvas.ClipRect);
  Bmp.Free;
end;

для возвращения исходного состояния:
Код:
StringGrid1.Enabled := True;
StringGrid1.Repaint;
Ответить с цитированием