Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 14-06-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
Bueno el antialias es un poquillo mas complicado en delphi 5 y me va bastante lento : / pero el degradado es sencillo. Te pongo un ejemplo y espero q encuentres alguna funcion de antialias con buen rendimiento.

Código Delphi [-]
unit degradado;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormPaint(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject); 
var 
  f: HRGN; 
begin 
  Form1.Borderstyle := bsNone; 
  f := CreateRoundRectRgn(
          0,            // x-coordinate of the region's upper-left corner
          0,            // y-coordinate of the region's upper-left corner
          clientwidth,  // x-coordinate of the region's lower-right corner
          clientheight, // y-coordinate of the region's lower-right corner
          40,           // height of ellipse for rounded corners
          40);          // width of ellipse for rounded corners
  SetWindowRgn(Handle,f,True);
end;

procedure TForm1.FormPaint(Sender: TObject);
var
        ri,gi,bi : integer;
        rf,gf,bf : integer;
        pr,pg,pb : double;
        r,g,b    : integer;
        x : integer;
        c : TColor;
begin
        inherited;

        ri := $3F;
        gi := $4F;
        bi := $70;

        rf := 255;
        gf := 255;
        bf := 255;

        pr := (rf - ri) / (2*Width/3);
        pg := (gf - gi) / (2*Width/3);
        pb := (bf - bi) / (2*Width/3);

        c := 0;
        for x := 0 to (2*Width div 3) - 1 do
        begin
          r := ri + round(pr * x);
          g := gi + round(pg * x);
          b := bi + round(pb * x);

          c := RGB(r,g,b);

          Canvas.Pen.Color := c;
          Canvas.MoveTo(x,0);
          Canvas.LineTo(x,Height);
        end;

        for x := (2*Width div 3) to Width do
        begin
          Canvas.Pen.Color := c;
          Canvas.MoveTo(x,0);
          Canvas.LineTo(x,Height);
        end;
end;
end.

Saludos
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas Impresion Personalizada fabianmk Impresión 2 08-06-2007 22:40:00
Progress Bar personalizada Oni OOP 2 07-02-2006 16:47:44
Impresion personalizada onlytk Impresión 1 13-12-2005 21:01:37
crear una mascara personalizada Velia Varios 2 15-11-2005 21:07:44
Vista Previa Personalizada jmselesan Impresión 1 11-07-2003 15:40:29


La franja horaria es GMT +2. Ahora son las 07:05:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi