De momento se me ocurre esta pequeña chapuza para arreglar la posible diferencia en los tipos de letra:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
Var
fName:String;
fSize:Integer;
begin
fName:=Form1.Font.Name;
fSize:=Form1.Font.Size;
Form1.Font.Name:=Edit1.Font.Name;
Form1.Font.Size:=Edit1.Font.Size;
Edit1.Width:=Canvas.TextWidth(Edit1.Text);
Form1.Font.Name:=fName;
Form1.Font.Size:=fSize;
end;
Un Saludo.