Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-11-2006
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 21
Deiv Va por buen camino
Smile No puedo capturar el Color de un Degradado

Hola,
Recuerdo que buscando en el foro encontré hace tiempo un post donde explicaban la forma de realizar un degradado, me sirvió de mucho, hoy hice nuevamente esa búsqueda y no tuve suerte (pues no deseaba abrir otro hilo). Y bien, he implementado ese código para capturar el color con el mouse con el código de abajo en un TPanel:
Código Delphi [-]
var
  Form1: TForm1;
  IsScanning: Boolean;

implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
  h,s,b: integer; //Tono, Saturacion, Luminosidad
  i,j: integer;
  x,y,z: integer;
begin
  IsScanning := False;
  Image1.Picture.Bitmap.Width:= 360;
  Image1.Picture.Bitmap.Height:= 256;
  with Image1.Canvas do
    begin
      Brush.Color:= clBlack;
      FillRect(ClipRect);
      b:= 255; // Luminosidad entre 0 y 255
      for h:= 0 to 359 do
        begin
          i:= ((h mod 60) * b) div 60;
          j:= b - i;
          for s:= 0 to 255 do
            begin
              x:= i + ((b-i) * s) div 255;
              y:= j + ((b-j) * s) div 255;
              z:= (b * s) div 255;
              case (h div 60) of
                0: Pixels[h,s]:= RGB(b,x,z);
                1: Pixels[h,s]:= RGB(y,b,z);
                2: Pixels[h,s]:= RGB(z,b,x);
                3: Pixels[h,s]:= RGB(z,y,b);
                4: Pixels[h,s]:= RGB(x,z,b);
                5: Pixels[h,s]:= RGB(b,z,y);
              end;
            end;
        end;
    end;
end;

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   IsScanning := True;
end;
procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
   IsScanning := False;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
   Clr: TColor;
begin
   If IsScanning = True Then
     begin
        Clr := Image1.Canvas.Pixels[X, Y];
        edtRed.Text:= IntToStr(GetRValue(Clr));
        edtGreen.Text:= IntToStr(GetGValue(Clr));
        edtBlue.Text:= IntToStr(GetBValue(Clr));
        pnlPreview.Color := Clr;
        Edit1.Text:=ColorToString(Clr); //Convierte a Hexadecimal
     end
end;
end.
Bueno la Aplicación funciona bien, solo que el degradado que se dibuja de izquierda a derecha: Rojo, Naranja , Amarillo, Verde, Cyan, Azul, Violeta y Rojo y en la parte inferior todo blanco (lo pueden probar) al recorrer el mouse tanto en la parte inferior el BLANCO como en la derecha el ROJO en mi TPanel (pnlPreview) no me captura estos colores y me muestra otros diferentes, pues Yo necesitaba capturar aquellos colores que a vista se ven en el degradado construido y cargado en la TIMage (con los otros colores no tengo el problema, solo con esos extremos)

¿A que se debe todo ello? ¿Como capturo por favor el blanco de la parte inferior o el color verdadero de la derecha del degradado?
Responder Con Cita
 



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
capturar imagenes palets API de Windows 2 26-09-2006 20:34:07
ListBox degradado Deiv OOP 4 17-01-2006 14:57:27
Aspecto Degradado de un form Rabata Varios 4 11-11-2005 12:42:56
Capturar Evento piccolo2101 Varios 4 27-10-2005 16:56:35
Degradado sobre cualquier elemento gluglu Varios 0 19-03-2005 16:13:33


La franja horaria es GMT +2. Ahora son las 01:29:58.


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