Conversão de mm para pixels
estou tentando posicionar um label num quick report. sei que o label tem que ficar 135mm distante da borda esquerda, ou seja, left:=135mm. o problema é que tenho que passar esse valor em pixel. como converter?
eu sei, eu sei. ´noobei´ agora...
eu sei, eu sei. ´noobei´ agora...
Djorius
Curtidas 0
Respostas
Mahdak
27/11/2006
estou tentando posicionar um label num quick report. sei que o label tem que ficar 135mm distante da borda esquerda, ou seja, left:=135mm. o problema é que tenho que passar esse valor em pixel. como converter?
eu sei, eu sei. ´noobei´ agora...
djorius, ja pesquisei sobre isso, fiz cursos de autocad Map, e nem o professor conseguiu me dar uma resposta coerente para essa duvida.
Cheguei ao seguinte raciocinio, [b:e119ad183b]que nao sei se está correto[/b:e119ad183b]:
1. pode-se converter, mas se por exemplo logo após a conversao, alguem mecher nas configurações do monitor, ja era, pois o pixel se estica, sendo assim, nao possui um tamanho padrão.
2. voce teria que desenvolver uma rotina para calibrar o sistema, como por exemplo usar uma escala grafica, onde voce sabe o quanto equivale ela em alguma unidade de medida (principio do georeferenciamento), para relatórios nao sei como isso poderia ser feito mas para imagens eu usaria(escanearia) uma escala grafica de uma carta (mapa), e inseria ela no sistema.
3. depois disso feito basta aplicar uma regra de 3, parecida com isso:
3.1 conta quantos pixels existe na escala
3.2 se a escala equivale a X metros (por exemplo), e possui tantos pixels; um pixel equivale a quantos metros?
GOSTEI 0
M@gnun
27/11/2006
à realmente necessidade de usar pixels?
quando vc for usar mm passe na propriedade size:
Size.Left := 135;
:D
espero ter ajudado.
quando vc for usar mm passe na propriedade size:
Size.Left := 135;
:D
espero ter ajudado.
GOSTEI 0
Thiago Vidal
27/11/2006
bom, qdo eu preciso deste tipo de informação, o jeito normalmente é recorrer às APIs do Windows.
normalmente eu uso a API GetDeviceCaps, que retorna quantos pixels por polegada um determinado canvas pode imprimir. vc pode tentar pegar esta informação do canvas do seu form, ou mesmo da impressora.
normalmente eu uso a API GetDeviceCaps, que retorna quantos pixels por polegada um determinado canvas pode imprimir. vc pode tentar pegar esta informação do canvas do seu form, ou mesmo da impressora.
function MMToPixels(Canvas: TCanvas; MM: Integer): Integer; begin Result := GetDeviceCaps(Canvas.Handle) * MM / 25.4; end;
GOSTEI 0