Fórum Como alinhar a direita ao usar defaultdrawing=false #209805

27/01/2004

0

Caros amigos

Uso D7. Em todos meus dbgrids, como não gosto de usar a opção selectrow em true, uso o seguinte código para pintar os dbgrids.

if dmc.QordemservicoconsultaCodigo.Value = posordserv then
begin
if gdselected in state then
dbgrid1.canvas.brush.Color :=Rgb(celulaRed,CelulaGreen,CelulaBlue)
else
dbgrid1.canvas.brush.Color := Rgb(linhaRed,LinhaGreen,LinhaBlue);
dbgrid1.canvas.Font.Color:= clwhite;
dbgrid1.canvas.Font.Style:= [fsbold];
DBGrid1.Canvas.Textrect(rect,Rect.Left+3,Rect.top+2,column.field.displaytext);
end
else
DBGrid1.Canvas.Textrec(rect,Rect.Left+3,Rect.top+2,column.field.displaytext);

Para isto seto a propriedade defaultdrawing em false.
Percebo que com a seleção automática selectedrow=true e defaultdrawing em true, posso alinhar os valores a direita, mas com o esquema que uso, mesmo que eu sete a prop. alignment=taRightJustify os valores permanecem alinhados a esquerda.

Alguma solução?

T+
Um abraço
Delmar


Delmar

Delmar

Responder

Posts

27/01/2004

Beppe

Um jeito que é certo que funciona é calcular a largura da string com Canvas.TextWidth e avançar Rect.Left por (Rect.Right - Rect. Left + Canvas.TextWidth(S)).

Talvez essa dicas possa funcionar:
Canvas.TextFlags := Canvas.TextFlags or DT_RIGHT;


Ou essa
Canvas.TextFlags := Canvas.TextFlags or ETO_RTLREADING;


OBS: Não testei as útimas duas.


Responder

Gostei + 0

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

Aceitar