Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Form con fondo grandiente

Es un sencillo procedure para darle un efecto grandiente a los forms sin componentes.

Código Delphi [-]
procedure GradientForm (frm : TForm; startcolor, endcolor : TColor);
var
  startr : integer;
  startg : integer;
  startb : integer;
  endr   : integer;
  endg   : integer;
  endb   : integer;
  curr   : integer;
  curg   : integer;
  curb   : integer;
  i      : integer;
  r      : TRect;
  nolines: byte;
  curpct : integer;
  bitspix: longint; 
begin
  startr := startcolor and  $000000FF;
  startg := (startcolor and $0000FF00) div 256;
  startb := (startcolor and $00FF0000) div 256 div 256;
  endr := endcolor and  $000000FF;
  endg := (endcolor and $0000FF00) div 256;
  endb := (endcolor and $00FF0000) div 256 div 256;

  if frm.Height < 250 then
    nolines:=frm.Height
  else
    nolines:=250; 
  bitspix:=GetDeviceCaps(frm.Canvas.Handle, BITSPIXEL); 
  if (bitspix = 8) and (nolines > 50) then 
    nolines:=50
  else if bitspix < 8 then 
    nolines:=4; 

  r.Left:=0; 
  r.Right:=frm.Width; 

  for i:=0 to nolines do 
  begin

    curpct:= (i * 100) div nolines; 


    if startr > endr then
     curr := startr - (curpct * (startr-endr) div 100)
    else
     curr := startr + (curpct * (endr-startr) div 100);


    if startg > endg then
     curg := startg - (curpct * (startg-endg) div 100)
    else
     curg := startg + (curpct * (endg-startg) div 100);


    if startb > endb then
     curb := startb - (curpct * (startb-endb) div 100)
    else
     curb := startb + (curpct * (endb-startb) div 100);


    frm.Canvas.Brush.Color:=RGB(curr, curg, curb);


    r.Top:=i + (i*(frm.Height div nolines));
    r.Bottom:=r.Top + (frm.Height div nolines)+1;


    frm.Canvas.FillRect(r);
  end;
end;

Para llamarlo

Código Delphi [-]
procedure TForm1.FormPaint(Sender: TObject);
begin 
GradientForm(Form1,RGB(60,140,210), RGB(1,1,2));
end;

Salu2
Responder Con Cita
  #2  
Antiguo 30-08-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Muy bueno.
Por cierto... ¿es de tu autoria o lo encontraste en algún sitio?
Si no es mucha molestia... ¿podrías indicar el link (si es que no de tu autoria y/o no posee derechos de autor)?
Estoy interesado en estos "aspectos estéticos".
Muchas gracias.
Responder Con Cita
  #3  
Antiguo 30-08-2007
Khronos Khronos is offline
Miembro
 
Registrado: abr 2007
Posts: 298
Poder: 18
Khronos Va por buen camino
Este code lo encontre en una pagina y me parecio interesante y lo probe. La combinacion de colores es mia xD

Código Delphi [-]
GradientForm(Form1,RGB(60,140,210), RGB(1,1,2));

Modificando los valores consigues todos los colores que quieras. Si me acuerdo de la pagina te paso el link

Salu2
Responder Con Cita
  #4  
Antiguo 20-09-2007
farnao farnao is offline
Registrado
 
Registrado: oct 2006
Posts: 3
Poder: 0
farnao Va por buen camino
Si también llamas al procedimiento en el evento OnResize el efecto es mejor. Si se llama sólo en el OnPaint el efecto se estropea cuando cambias lo suficiente el tamaño de la venta, o cuando la velocidad del cambio es grande.
Responder Con Cita
  #5  
Antiguo 09-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
No es muy dificil de "recordar". De hecho, encontré la página por lo que dejo la referencia para dar el crédito correspondiente al autor original

http://www.nikse.dk/delphi.html
Responder Con Cita
  #6  
Antiguo 24-01-2008
roockie roockie is offline
Registrado
 
Registrado: nov 2007
Ubicación: Costa Rica
Posts: 5
Poder: 0
roockie Va por buen camino
ME PARECE MUY INTERESANTE IRE A APLICARLO Y DIRE COMO ME FUE
Responder Con Cita
Respuesta


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


La franja horaria es GMT +2. Ahora son las 12:37:31.


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