Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-02-2022
Esteban74 Esteban74 is offline
Miembro
 
Registrado: jun 2020
Posts: 12
Poder: 0
Esteban74 Va por buen camino
uso de Canvas en android da error pero no bajo windows

Hola, el siguiente código me produce una excepción bajo Android pero funciona perfectamente en Windows, ¿a alguien le paso lo mismo o tiene una idea de por que sucede?

Código Delphi [-]
function Tfrm_Hoy.calcularAnchoString(AText: string): Single;
var
  bmp: TBitmap;
  ancho: Single;
begin
  bmp := TBitmap.Create;
  try
    bmp.Canvas.Font.Style := [];
    bmp.Canvas.Font.Family := frmPrincipal.configuracion.Family;
    bmp.Canvas.Font.Size := frmPrincipal.configuracion.tam_fuente;
    ancho := bmp.Canvas.TextWidth(AText);
    Result := ancho;
  finally
    bmp.Free;
  end;
end;

Me canse de registrar la web pero no encuentro ningún problema similar, agradecería mucho una idea de que puede estar pasando
Responder Con Cita
  #2  
Antiguo 17-02-2022
Esteban74 Esteban74 is offline
Miembro
 
Registrado: jun 2020
Posts: 12
Poder: 0
Esteban74 Va por buen camino
Bueno con la idea de que un TLayout al tener una propiedad parent podría llegar a heredar los atributos de fuente (que es donde fallaba el código al intentar asignarles un valor) podría funcionar, y funcionó anda en Windows y Android, no estoy seguro bien por que pero cito la solucion al problema, por si a alguien le pasó.

Código Delphi [-]
function Tfrm_Hoy.calcularAnchoString(AText: string): Single;
var
  unLayout: TLayout;
  ancho: Single;

begin
  unLayout := TLayout.Create(frmPrincipal);
  unLayout.Parent := frmPrincipal;
  Memo1.Lines.Add('paso: bmp := TBitmap.Create; ');
  try
    unLayout.Canvas.Font.Style := [];
    unLayout.Canvas.Font.Family := frmPrincipal.configuracion.Family;
    unLayout.Canvas.Font.Size := frmPrincipal.configuracion.tam_fuente;
    ancho := unLayout.Canvas.TextWidth(AText);
    Result := ancho;
  finally
    unLayout.Free;
  end;
end;
Responder Con Cita
  #3  
Antiguo 18-02-2022
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
Listado de fuentes bajo Android Esteban74 FireMonkey 1 18-05-2021 16:34:46
XML vacio o no existente bajo android Esteban74 FireMonkey 6 22-06-2020 08:28:40
Compila bien, pero no se ejecuta la app en android Jose Manuel Desarrollo en Delphi para Android 8 08-08-2018 22:29:00
php bajo comando en windows Ulises PHP 6 26-01-2016 18:45:50
Aspecto de los programas bajo windows XP alvaroiba Varios 1 10-11-2004 22:32:04


La franja horaria es GMT +2. Ahora son las 16:05:57.


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