Eu uso a função abaixo. Veja se ela te serve. Se conseguir melhorar alguma coisa me mande de volta.
procedure AjustaForm2(Form: TForm); var i, j : Integer; begin if (Screen.Width = 1024) then Exit; Form.ScaleBy(1024, 768); for i := 0 to Form.ComponentCount - 1 do begin if (Form.Components[i] is TStringGrid) then for j := 0 to (Form.Components[i] as TStringGrid).ColCount-1 do (Form.Components[i] as TStringGrid).ColWidths[j] := Round((Form.Components[i] as TStringGrid).ColWidths[j] * (Screen.Width/1024)) else if (Form.Components[i] is TDBGrid) then for j := 0 to (Form.Components[i] as TDbGrid).Columns.Count-1 do (Form.Components[i] as TDbGrid).Columns[j].Width := Round((Form.Components[i] as TDbGrid).Columns[j].Width * (Screen.Width/1024)) else if (GetPropInfo(Form.Components[i].ClassInfo, 'Font') <> nil) then Form.Font.Size := (Screen.Width div Form.Width) * Form.Font.Size; end; end; __________________________________________________ Faça ligações para outros computadores com o novo Yahoo! Messenger http://br.beta.messenger.yahoo.com/