Fórum Form com aparencia gradiente #331966
24/10/2006
0
Visualdesigner
Curtir tópico
+ 0Posts
24/10/2006
Paulocesar1301
[b:16b9c4dbac]peguei aki no fórum mesmo[/b:16b9c4dbac]
procedure DrawGradient(Canvas: TCanvas; ARect: TRect; Colors: array of TColor); var I, NumColors, IColor, PixPerColor: Integer; R, G, B, IR, IG, IB: Single; begin NumColors := Length(Colors); PixPerColor := (ARect.Right - ARect.Left) div (NumColors - 1); R := GetRValue(Colors[0]); G := GetGValue(Colors[0]); B := GetBValue(Colors[0]); IR := GetRValue(Colors[1]) - GetRValue(Colors[0]); IG := GetGValue(Colors[1]) - GetGValue(Colors[0]); IB := GetBValue(Colors[1]) - GetBValue(Colors[0]); IR := IR/PixPerColor; IG := IG/PixPerColor; IB := IB/PixPerColor; IColor := 1; for I := ARect.Left to ARect.Right do begin if ((I - ARect.Left) mod PixPerColor = 0) and (I <> ARect.Left) then begin R := GetRValue(Colors[IColor]); G := GetGValue(Colors[IColor]); B := GetBValue(Colors[IColor]); IR := GetRValue(Colors[IColor + 1]) - GetRValue(Colors[IColor]); IG := GetGValue(Colors[IColor + 1]) - GetGValue(Colors[IColor]); IB := GetBValue(Colors[IColor + 1]) - GetBValue(Colors[IColor]); IR := IR/PixPerColor; IG := IG/PixPerColor; IB := IB/PixPerColor; Inc(IColor); end; Canvas.Pen.Color := RGB(Trunc(R), Trunc(G), Trunc(B)); Canvas.MoveTo(I, ARect.Top); Canvas.LineTo(I, ARect.Bottom); R := R + IR; G := G + IG; B := B + IB; end; end; procedure TForm1.FormCreate(Sender: TObject); begin DrawGradient(Form1.Image1.Canvas, Rect(0, 0, Form1.ClientWidth, Form1.ClientHeight), [clTeal, clWhite]); Application.ProcessMessages; end;
Gostei + 0
24/10/2006
Visualdesigner
Gostei + 0
24/10/2006
Paulocesar1301
Gostei + 0
24/10/2006
Visualdesigner
http://www.devexpress.com/
Gostei + 0
24/10/2006
Paulocesar1301
Gostei + 0
24/10/2006
Titanius
Olá, creio que mudando esta parte do código
Canvas.MoveTo(I, ARect.Top); Canvas.LineTo(I, ARect.Bottom);
para
Canvas.MoveTo(I, ARect.Left); Canvas.LineTo(I, ARect.Right);
Ainda [b:4d88d64cc6]não[/b:4d88d64cc6] testei, mas pela lógica deve ser isto...
Gostei + 0
24/10/2006
Paulocesar1301
:( já tinha testado isso e não rodou... ficava exatamente igual :(
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)