Resize do formulario - como aumentar as fontes de acordo com o tamanho do formulario ?
Olá boa tarde!
Estou implementando o código Resize do formulario, até ai tudo bem, funciona bem.
Mas como aumentar o tamanho das fontes de acordo com o Resize do Formulario?
Favor da um exemplo de código
Dese já meus agradecimentos a quem puder ajudar.
100+
ANT.CARLOS/SP
procedure TFrm_Movpdv4.FormResize(Sender: TObject);
var
AH, AW: Word;
R: TRect;
I: Integer;
begin
inherited;
AH := Height;
AW := Width;
//------------------------------------------//
//...Resize dos componentes //
//------------------------------------------//
for I := 0 to ComponentCount - 1 do
if Components[I] is TControl then
if Components[I].Tag = 0 then begin
R := TControl(Components[I]).BoundsRect;
R.Left := MulDiv(R.Left, AW, BW);
R.Top := MulDiv(R.Top, AH, BH);
R.Right := MulDiv(R.Right, AW, BW);
R.Bottom := MulDiv(R.Bottom, AH, BH);
TControl(Components[I]).BoundsRect := R;
end;
BH := Height;
BW := Width;
end;
Estou implementando o código Resize do formulario, até ai tudo bem, funciona bem.
Mas como aumentar o tamanho das fontes de acordo com o Resize do Formulario?
Favor da um exemplo de código
Dese já meus agradecimentos a quem puder ajudar.
100+
ANT.CARLOS/SP
procedure TFrm_Movpdv4.FormResize(Sender: TObject);
var
AH, AW: Word;
R: TRect;
I: Integer;
begin
inherited;
AH := Height;
AW := Width;
//------------------------------------------//
//...Resize dos componentes //
//------------------------------------------//
for I := 0 to ComponentCount - 1 do
if Components[I] is TControl then
if Components[I].Tag = 0 then begin
R := TControl(Components[I]).BoundsRect;
R.Left := MulDiv(R.Left, AW, BW);
R.Top := MulDiv(R.Top, AH, BH);
R.Right := MulDiv(R.Right, AW, BW);
R.Bottom := MulDiv(R.Bottom, AH, BH);
TControl(Components[I]).BoundsRect := R;
end;
BH := Height;
BW := Width;
end;
Antonio Jesus
Curtidas 0
Respostas
Antonio Jesus
02/08/2012
Olá, bom dia!
Bom explicando o q este código faz:
Vc inicia um formulario no modo Normal e depois expande em tempo de execução, o tamanho dos componente vão aumentar de acordo com o tamanho do formulario, calculo efetuado em % do (altura/Largura inicial) x (altura/Largura final).
Então, pensando melhor, vi q o q eu queria mesmo era alterar os fontes dos Labels, pois o q expande no momento do Resize de Normal para Maximizado são os componetes Edits, Combx, etc. Os Labels ficam com tamanho de fonte do mesmo tamanho do incial, desejaraia q acompanhace a graduação proporcional do form.
100+
ANT.CARLOS/SP
Código completo
-----------------------------
private
{ Private declarations }
BH: Word;
BW: Word;
-----------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
BH := Height;
BW := Width;
end;
procedure TForm1.FormResize(Sender: TObject);
var
AH, AW: Word;
R: TRect;
I: Integer;
begin
AH := Height;
AW := Width;
for I := 0 to ComponentCount - 1 do
if Components[I] is TControl then
if Components[I].Tag = 0 then begin
R := TControl(Components[I]).BoundsRect;
R.Left := MulDiv(R.Left, AW, BW);
R.Top := MulDiv(R.Top, AH, BH);
R.Right := MulDiv(R.Right, AW, BW);
R.Bottom := MulDiv(R.Bottom, AH, BH);
TControl(Components[I]).BoundsRect := R;
end;
BH := Height;
BW := Width;
end;
Bom explicando o q este código faz:
Vc inicia um formulario no modo Normal e depois expande em tempo de execução, o tamanho dos componente vão aumentar de acordo com o tamanho do formulario, calculo efetuado em % do (altura/Largura inicial) x (altura/Largura final).
Então, pensando melhor, vi q o q eu queria mesmo era alterar os fontes dos Labels, pois o q expande no momento do Resize de Normal para Maximizado são os componetes Edits, Combx, etc. Os Labels ficam com tamanho de fonte do mesmo tamanho do incial, desejaraia q acompanhace a graduação proporcional do form.
100+
ANT.CARLOS/SP
Código completo
-----------------------------
private
{ Private declarations }
BH: Word;
BW: Word;
-----------------------
procedure TForm1.FormCreate(Sender: TObject);
begin
BH := Height;
BW := Width;
end;
procedure TForm1.FormResize(Sender: TObject);
var
AH, AW: Word;
R: TRect;
I: Integer;
begin
AH := Height;
AW := Width;
for I := 0 to ComponentCount - 1 do
if Components[I] is TControl then
if Components[I].Tag = 0 then begin
R := TControl(Components[I]).BoundsRect;
R.Left := MulDiv(R.Left, AW, BW);
R.Top := MulDiv(R.Top, AH, BH);
R.Right := MulDiv(R.Right, AW, BW);
R.Bottom := MulDiv(R.Bottom, AH, BH);
TControl(Components[I]).BoundsRect := R;
end;
BH := Height;
BW := Width;
end;
GOSTEI 0