Fórum Pegar o tamanho do texto em pixels #593183
15/05/2018
0
Olá, estou precisando pegar o tamanho do texto de uma edit em pixels, porém ao tentar utilizar o canvas ele informa identificador não declarado. Se eu criar uma variável do tipo TCanvas, ele retorna um erro em execução "canvas not allow drawing". Estou fazendo isso em uma classe, caso eu tente usar o canvas no form diretamente ele funciona. Porém trata-se de um componente meu que hera de TEdit. Se alguém puder me ajudar. Obrigado.
Alessandro Ribeiro
Curtir tópico
+ 0
Responder
Post mais votado
16/05/2018
Oi P2, consegui resolver, o problema era no trecho:
Como a minha classe herdava diretamente de TObject não possuia o field Canvas. Porém como seria somente para usar o método TextWidth, eu poderia instanciar qualquer objeto que herdasse em algum momento de TCanvas e utilizar somente o método destruindo ele depois, ficando assim:
Foi feito no Lazarus mas vale o mesmo para o Delphi
var oCanvas: TCanvas begin repeat texto := ' ' + texto; until oCanvas.TextWidth >= TEDit(Sender).Width end;
Como a minha classe herdava diretamente de TObject não possuia o field Canvas. Porém como seria somente para usar o método TextWidth, eu poderia instanciar qualquer objeto que herdasse em algum momento de TCanvas e utilizar somente o método destruindo ele depois, ficando assim:
var oForm: TForm begin repeat texto := ' ' + texto; until oForm.Canvas.TextWidth(texto) >= TEDit(Sender).Width; end;
Foi feito no Lazarus mas vale o mesmo para o Delphi
Alessandro Ribeiro
Responder
Gostei + 1
Mais Posts
16/05/2018
Raimundo Pereira
Post seu código para analisarmos
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)