GARANTIR DESCONTO

Fórum Conversão de mm para pixels #333778

27/11/2006

0

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

Djorius

Responder

Posts

29/11/2006

Mahdak

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?


Responder

Gostei + 0

29/11/2006

M@gnun

à realmente necessidade de usar pixels?

quando vc for usar mm passe na propriedade size:

Size.Left := 135;

:D
espero ter ajudado.


Responder

Gostei + 0

29/11/2006

Thiago Vidal

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.

function MMToPixels(Canvas: TCanvas; MM: Integer): Integer;
begin
  Result := GetDeviceCaps(Canvas.Handle) * MM / 25.4;
end;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar