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 Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-09-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Cambiar colores en cabecera de TStringGrrid

Hola de nuevo, amigos.

Tengo algunas cuestiones sin resolver en el foro y creo que es porque hago propuestas muy raras. Pero me gusta personalizar mis proyectos.

La de hoy se refiere al THeader de un TStringGrid.

Con los colores que trae por defecto, se distingue muy poco las filas del encabezado en algunos dispositivos y por éso me he planteado cambiar los colores del texto y del fondo de la cabecera del TStringGrid.

He buscado y rebuscado en el foro, en Google y en StackOverflow sin éxito.

Quizá pido algo que no se puede hacer, aunque en tiempo de diseño lo he intentado con los .style que vienen en el paquete. Con esto he tenido dos problemas, bueno tres (el tercero es mi desconocimiento de este sistema de personalizar). Los otros dos son:

1.- No sé cómo personalizar la cabecera sola. (Si es que se puede)
2.- Cuando cambio el estilo completo, se ve bien en tiempo de diseño, pero al ejecutar el programa en la tableta, no se ven los colores del estilo, sino los originales.

Mi intención es cambiar solamente los colores de la cabecera, Fondo y Texto.

He visto en la ayuda que el THeader tiene los distintos objetos (hijos) representados por Header.THeaderItems, los cuales tienen algunas propiedades como Font, FontColor, Header... que podrían servirme con las modificaciones adecuadas, pero tengo un problema anterior, no sé como acceder al Header del TStringGrid.

En el foro he encontrado algo... esto y también esto otro
pero se refiere a Windows y yo estoy en Firemonkey (Android/Ios), y no sé como adaptarlo.

También he estado probando con esto:
Código Delphi [-]
procedure TEditaAvis.Memo1ApplyStyleLookup(Sender: TObject);
var Obj: TFmxObject;
    Rectangle1: TRectangle;
begin
     Obj := StringGrid1.FindStyleResource('background');
     if Obj <> nil then
     begin
          TControl(Obj).Margins   := TBounds.Create(TRectF.Create(2, 2, 2, 2));
          Rectangle1              := TRectangle.Create(Obj);
          Obj.AddObject(Rectangle1);
          Rectangle1.Align        := TAlignLayout.Contents;
          Rectangle1.Fill.Color   := claLightgreen;
          Rectangle1.Stroke.Color := claNull;
          Rectangle1.HitTest      := False;
          Rectangle1.SendToBack;
     end;
end;

Modificando "Obj := Memo1.FindStyleResource('background');", para intentar conseguir(sin éxito) el fondo del THeader.

Bueno, resumiendo: os cuento todo esto, para que no penséis que no me lo he trabajado. Llevo 3 días sólo con esto.

Agradecería cualquier solución. Y si alguien sabe que no existe... por favor, que me lo diga para no seguir trabajando en vano.

Saludos a todos y gracias de antemano.

Última edición por jhonalone fecha: 12-09-2016 a las 14:09:39.
Responder Con Cita
  #2  
Antiguo 12-09-2016
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
El header está en la sección protegida del control. Para acceder debes usar un ayudante (class helper) o una subclase

Ejemplo usando ayudante para cambiar la fuente

El estilo como y cual pusiste? Si pones un estilo Android no te va a funcionar en otro sistema operativo que no sea Android, lo mismo para Windows, iOs y Mac
Responder Con Cita
  #3  
Antiguo 13-09-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Gracias, Agustín por responderme. Te estás convirtiendo en un miembro importante de la comunidad Delphi. Ya te he visto resolver bastantes cuestiones de los foreros "torpes" como yo.

Acabo de llegar a casa. No he probado tu link para el ejemplo. Ya te contaré.

Esta es la ruta de la que he sacado el estilo: C:\RadStudio10\17.0\Redist\styles\Fmx\MetropolisUIGreen.Style

Lo utilizo con la plataforma Android y ocurrió lo que te dije, el dispositivo mostró el estilo por defecto, nada que ver con el que se veía en la pantalla master con el Style Android, que sí se había actualizado con el nuevo estilo.

Si se puede cambiar una parte (el header) solamente, si lo sabes, dime cómo por favor.

Si, (te dije que no he visto el link que me has dejado) si con este link puedo cambiar el fondo y el texto, me servirá.

Un saludo. Gracias. Te cuento cuando pueda verlo esta tarde.
Responder Con Cita
  #4  
Antiguo 13-09-2016
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Bueno. Agustín.
Me dije: "Voy a echar un vistazo rápido al link". He visto que es tuyo y me parece estupendo.

Sólo le pongo dos "pegas" para mi problema, que no para el código.

Yo necesito cambiar el background sobre todo y necesito tus instrucciones para usar el código.

Saludos cordiales, gracias.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda 'Cambiar colores' Cristalero OOP 9 08-04-2009 17:25:18
Tip: Como cambiar los colores del IDE mamcx Varios 8 09-02-2009 23:42:31
Cambiar colores en runtime Minio Gráficos 1 15-04-2008 23:00:03
Cambiar colores aleatoriamente donchuma OOP 3 21-10-2007 14:53:31
Cambiar colores a la imagen maravert Gráficos 3 07-03-2005 09:57:44


La franja horaria es GMT +2. Ahora son las 02:12:40.


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