Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-11-2019
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Poder: 0
viverosjosem Va por buen camino
Unhappy incorporar color directamente por codigo

Hola amigos.
Tengo una aplicacion que toma datos de un archivo de texto. En este archivo hay una columna de colores en formato integer. La aplicacion necesita tomar la columna de colores (Quinta columna), y pintar paneles, segun corresponda.

El archivo es similar a este:
Cita:
1;1;5;6900;16711935;0
1;2;4;5900;65535;0
1;3;3;3900;65535;0
1;4;16;6800;65280;0
1;5;23;5200;16776960;0
1;6;2;3500;-16777201;0
1;7;1;3400;16711935;0
1;8;9;15300;0;0

Aqui va un segmento de codigo, donde explico las lineas importantes para que se entienda el problema.
** Asumiremos que estamos posicionado sobre la primera linea del archivo de texto.
Código Delphi [-]
var 
...
...
   sStrToHexa := String;
   iTColor       : TColor;

...
...
...
   AssignFile(f, Archivo );
   Reset(f);
   while not SeekEof(f) do
   begin
      if SeekEoln(f) then
        Readln;  

      Read( f, j );
      j := Trim( j );

      sCateg   := GetParam(j, ';');
      sPanel   := GetParam(j, ';');
      sCodigo  := GetParam(j, ';');
      sPrecio  := GetParam(j, ';');
      sColorBtn:= GetParam(j, ';');  //===>  Esta linea toma el color de la linea del archivo (columna 5). Por ejemplo: 16711935, Color Rosado.

      sStrToHexa := IntToHex(StrToInt(sColorBtn));  // ===> Aqui convertimos el color numerico(16711935) a Hexadecimal, lo que nos da: 00FF00FF 

      iTColor    := '$' + sStrToHexa;  //===> Aqui deberiamos asignar el color Hexadecimal, de la forma $00FF00FF
...
...

El problema es que al asignar el color, en la forma: '$' + sStrToHexa, esta asignacion, internamente conserva las comillas (''), con lo que no me entrega el color esperado. Solo me entrega un tono de gris, para todas las lineas de color leidas.

Entonces,
como puedo realisar esa asignacion?, eliminando internamente las comillas?, para que me quede algo como:
Código Delphi [-]
 iTColor    := $00FF00FF;

Espero haberme explicado bien.

Saludos.
Jose Miguel.
Responder Con Cita
  #2  
Antiguo 25-11-2019
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 280
Poder: 8
manelb Va por buen camino
prueba si te funciona así ...
Código Delphi [-]
  grid.Canvas.Brush.Color:= Stringtocolor('$00FF00FF');

Saludos a todos
Responder Con Cita
  #3  
Antiguo 25-11-2019
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Poder: 0
viverosjosem Va por buen camino
Hola manelb.
Gracias por tu respusta.
Olvide comentar que trabajo con Delphi Tokyo, para android. Y la funcion: "StringToStr", no esta soportada para Delphi/Android.

Saludos.
Jose Miguel.
Responder Con Cita
  #4  
Antiguo 25-11-2019
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Poder: 0
viverosjosem Va por buen camino
Quise decir: La funcion "StringToColor", no esta soportada para Delphi/Android.

Saludos.
Jose Miguel.
Responder Con Cita
  #5  
Antiguo 26-11-2019
viverosjosem viverosjosem is offline
Baneado
 
Registrado: dic 2017
Posts: 64
Poder: 0
viverosjosem Va por buen camino
Thumbs up

Hola Amigos.
Solucione el problema de los colores en Delphi/Android.

lo logre de esta manera.
Código Delphi [-]

...
...
      sColorBtn:= GetParam(j, ';');

      sColorBtn := IntToHex(StrToInt(sColorBtn));
...

                                                               // Aqui, logramos incorporar el codigo Hexadecimal, sin comillas.                                                   
   TRectangle(Components[a]).Fill.Color := TAlphaColor(AnsiQuotedStr('$'+sColorBtn, '"'));

Les dejo la solucion, por si le sirve a alguien.

Y gracias por su apoyo.
Saludos.
Jose Miguel.
Responder Con Cita
  #6  
Antiguo 26-11-2019
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.234
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

Gracias por compartir la solución

Saludos
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
Como inyectar código directamente a un proceso externo rolandoj API de Windows 22 18-03-2023 22:33:08
Incorporar dll al proyecto dfarias Varios 4 12-11-2008 18:46:49
Color de fondo párrafo , por código Tonio Varios 3 01-10-2008 20:31:24
Incorporar DDL a EXE carmax Varios 1 10-02-2007 18:21:07
incorporar imagenes a un RichEdit1 jorodgar Varios 3 29-04-2005 20:16:54


La franja horaria es GMT +2. Ahora son las 18:27:45.


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