Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-01-2009
Niko Niko is offline
No confirmado
 
Registrado: may 2003
Ubicación: Fuenlabrada - Madrid
Posts: 55
Poder: 0
Niko Va por buen camino
Obtener RGB a partir de HTML

Hola de nuevo a todos.

Sigo con mi programa, y ahora se me plantea otra duda, he logrado convertir un valor RGB a un valor HTML con esta expresion:

Código Delphi [-]
function ColorToHtml(DelphiColor:TColor):string;
var 
  tmpRGB : TColorRef;
begin 
  tmpRGB := ColorToRGB(DelphiColor);
  Result:=Format( '#%.2x%.2x%.2x',
                  [GetRValue(tmpRGB),
                   GetGValue(tmpRGB),
                   GetBValue(tmpRGB)]);
end; 
begin 
    Edit4.Caption:=ColorToHtml(Panel1.Color);
end;

Ahora, lo que quiero hacer es poder hacerlo a la inversa, ese valor que tengo en HTML, convertirlo en RGB y mostrarlo en label1, label2 y label3.

A ver si alguien me puede hechar una manilla. Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 04-01-2009
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Hola.

Código Delphi [-]
function HtmlToColor(Color: string): TColor;
begin
  Result:=StringToColor('$' + Copy(Color, 6, 2) + Copy(Color, 4, 2) + Copy(Color, 2, 2));
end;

Saludos.
Responder Con Cita
  #3  
Antiguo 04-01-2009
Niko Niko is offline
No confirmado
 
Registrado: may 2003
Ubicación: Fuenlabrada - Madrid
Posts: 55
Poder: 0
Niko Va por buen camino
Hola xEsk:

Esto que me dices, al ponerlo en el OnClick del Button me da error en el siguiente Procedure. De todos modos no me he enterado muy bien, a lo mejor soy yo el que lo he puesto mal.

Mira:
Código Delphi [-]
procedure TForm1.SpeedButton9Click(Sender: TObject);
function HtmlToColor(Color: string): TColor;
begin
  Result:=StringToColor('$' + Copy(Color, 6, 2) + Copy(Color, 4, 2) + Copy(Color, 2, 2));
end;

procedure TForm1.TrackBar1Change(Sender: TObject); // AQUI ME DA EL ERROR
function ColorToHtml(DelphiColor:TColor):string;
var
  tmpRGB : TColorRef;
  begin
  tmpRGB := ColorToRGB(DelphiColor);
  Result:=Format( '#%.2x%.2x%.2x',
                  [GetRValue(tmpRGB),
                   GetGValue(tmpRGB),
                   GetBValue(tmpRGB)]);
end;
begin
Panel2.Color:= RGB(TrackBar1.Position,
                   0,
                   0);
Panel1.Color:= RGB(TrackBar1.Position,
                   TrackBar2.Position,
                   TrackBar3.Position);
Edit1.Text:= IntToStr(TrackBar1.Position);
Edit4.Text:=ColorToHtml(Panel1.Color);
Edit5.Text:= '('+Edit1.Text+','+Edit2.Text+','+Edit3.Text+')';
end;

De todos modos ya te digo que no se por donde me ando, yo tengo el valor HTML en el EDIT4 y quiero pasarlo a RGB y mostrarlo en label1, label2 y label3.

Me puedes explicar un poquito?, muchas gracias.
Responder Con Cita
  #4  
Antiguo 04-01-2009
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Poder: 19
xEsk Va por buen camino
Hola, el código que has puesto aquí esta hecho un "churro" (y lo digo con todo el cariño xD).

Tienes procedures dentro de procedures, y por esto te da errores.

Te pongo un ejemplo de como podrias estructurarlo:

Código Delphi [-]
function HtmlToColor(Color: string): TColor;
begin
  Result:=StringToColor('$' + Copy(Color, 6, 2) + Copy(Color, 4, 2) + Copy(Color, 2, 2));
end;

function ColorToHtml(DelphiColor:TColor):string;
var
  tmpRGB : TColorRef;
begin
  tmpRGB := ColorToRGB(DelphiColor);
  Result:=Format( '#%.2x%.2x%.2x',
                 [GetRValue(tmpRGB),
                  GetGValue(tmpRGB),
                  GetBValue(tmpRGB)]);
end;

procedure TForm1.SpeedButton9Click(Sender: TObject);
begin
  // tu codigo del "SpeedButton OnClick"
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
  // tu codigo del "TrackBar OnChange"
end;

Saludos.
Responder Con Cita
  #5  
Antiguo 05-01-2009
Niko Niko is offline
No confirmado
 
Registrado: may 2003
Ubicación: Fuenlabrada - Madrid
Posts: 55
Poder: 0
Niko Va por buen camino
Hola xEsk:

Muchas gracias por tu ayuda (y por la crítica), la verdad es que llevaba casi 3 años sin coger el Delphi y se me han olvidado las cosas, de todos modos yo lo veia un poco raro también, asi que en cuanto me lo has dicho he caido. Ya me ha salido, y todo correcto, solo me queda solventar un par de errores y listo.

Muchas gracias de verdad.
Un saludo.
Responder Con Cita
Respuesta



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
Obtener SqlDataAdapter a partir de DataSet kes .NET 0 16-10-2007 11:42:38
como obtener codigo HTML de una DB. foetus HTML, Javascript y otros 0 07-09-2007 19:34:05
Obtener Código HTML hcalero Varios 0 06-02-2007 12:55:10
Obtener IP a partir de netbios (nombre windows) aledieb API de Windows 2 20-10-2006 18:13:43
generar html (tablas) a partir de query jymy788 Varios 2 28-09-2004 10:29:36


La franja horaria es GMT +2. Ahora son las 09:00:25.


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