Como saber se o tamanho de uma linha, é o tamanho REal?
Olá, minha dúvida é a seguinte:
Eu desenho um panel, que de largura deverá ter ´5 metros´, claro que não cabe na tela, aí eu falo que o panel tem 100px que equivale a 5 metros reais, aih eu pinto uma linha de 10px, ou seja, 2 metros...como eu faço para saber isso? pois os 10px na minha resolucao eh um tamanho, em outra resolucao eh outro tamanho, tem algum componente ou alguma funcao que me de isso?
Desde já agradeço
[]s
Fellipe H.
Eu desenho um panel, que de largura deverá ter ´5 metros´, claro que não cabe na tela, aí eu falo que o panel tem 100px que equivale a 5 metros reais, aih eu pinto uma linha de 10px, ou seja, 2 metros...como eu faço para saber isso? pois os 10px na minha resolucao eh um tamanho, em outra resolucao eh outro tamanho, tem algum componente ou alguma funcao que me de isso?
Desde já agradeço
[]s
Fellipe H.
Titanius
Curtidas 0
Respostas
Massuda
29/07/2005
Não sei se entendi direito, mas [url=http://delphi.about.com/od/adptips2005/qt/pixel2mm.htm]este exemplo[/url] (em inglês) do site delphi.about.com mostra como converter pixels em milimetros (o contrário não é difícil de deduzir). Você pode convencionar, por exemplo, que 10 metros corresponde a 10 mm na tela e fazer seu desenho baseados nisso.
GOSTEI 0
Titanius
29/07/2005
Era isso mesmo, Muitissimo obrigado massuda, irei estudar o exemplo...
[]s
Fellipe H.
[]s
Fellipe H.
GOSTEI 0
Titanius
29/07/2005
Massuda, tentei entender o exemplo e não consegui... na verdade não consegui nem por pra rodar... vc poderia me explicar +/- como ele funciiona?
Desde já agradeço
Desde já agradeço
GOSTEI 0
Massuda
29/07/2005
Relendo o exemplo, vi que o exemplo de uso está errado (!) e é incompleto... um exemplo melhor seria...
var cx, cy : Double; mmx, mmy : Integer; pxx, pxy: Integer; begin // supondo que isso esteja em um método de um form PixelsPerMM(Self.Canvas,cx,cy) ; // qual o tamanho, em mm, // de um retangulo 468x60 pixels? mmx := Trunc(468 / cx) ; mmy := Trunc(60 / cy) ; // qual o tamanho, em pixels, // de um retangulo 500x32 mm? pxx := Trunc(500 * cx); pxy := Trunc(32 * cy); end;
GOSTEI 0
Titanius
29/07/2005
Tentei executar, porém deu este erro:
[Error] Unit1.pas(52): Types of actual and formal var parameters must be identical
procedure TForm1.BitBtn1Click(Sender: TObject);
var
cx, cy : Double;
mmx, mmy : Integer;
pxx, pxy: Integer;
begin
// supondo que isso esteja em um método de um form
PixelsPerMM(Self.Canvas,cx,cy) ; [b:118e960219]<<--- Aqui esta o Erro[/b:118e960219]
// qual o tamanho, em mm,
// de um retangulo 468x60 pixels?
mmx := Trunc(468 / cx) ;
mmy := Trunc(60 / cy) ;
// qual o tamanho, em pixels,
// de um retangulo 500x32 mm?
pxx := Trunc(500 * cx);
pxy := Trunc(32 * cy);
end;
[]s
Fellipe H.
[Error] Unit1.pas(52): Types of actual and formal var parameters must be identical
procedure TForm1.BitBtn1Click(Sender: TObject);
var
cx, cy : Double;
mmx, mmy : Integer;
pxx, pxy: Integer;
begin
// supondo que isso esteja em um método de um form
PixelsPerMM(Self.Canvas,cx,cy) ; [b:118e960219]<<--- Aqui esta o Erro[/b:118e960219]
// qual o tamanho, em mm,
// de um retangulo 468x60 pixels?
mmx := Trunc(468 / cx) ;
mmy := Trunc(60 / cy) ;
// qual o tamanho, em pixels,
// de um retangulo 500x32 mm?
pxx := Trunc(500 * cx);
pxy := Trunc(32 * cy);
end;
[]s
Fellipe H.
GOSTEI 0
Massuda
29/07/2005
Desculpe... mude......para...
cx, cy : Double;
cx, cy : Single;
GOSTEI 0
Titanius
29/07/2005
Muito obrigado massuda, ajudou muito! :D
[]s
[]s
GOSTEI 0
Titanius
29/07/2005
So enchendo mais um pouquinho, como faço pra pintar um pixel via canvas num TImage?
Tipo, forneço X e Y, e ele pinta de preto....
[]s
Tipo, forneço X e Y, e ele pinta de preto....
[]s
GOSTEI 0
Massuda
29/07/2005
Não faço idéia de como fazer isso... talvez fosse melhor abrir outro tópico, já que isso é outra novela...
GOSTEI 0