方法中传参的时候加var和不加var对于非基础数据类型的参数是不是一样的啊我作了个小测试  TBusLineDev = class
  private
    FDevId: integer;
    FLineID: Integer;
  end;  TForm1 = class(TForm)
    Button1: TButton;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    FBuslineDev: TBusLineDev;
    FInt: Integer;
    procedure F1(BusLineDev: TBusLineDev; IntValue: Integer);
    procedure F2(var BusLineDev: TBusLineDev;var IntValue: Integer);
  public
  end;procedure TForm1.FormCreate(Sender: TObject);
begin
  FBuslineDev := TBusLineDev.Create;
  FBuslineDev.FDevId := 3;
  FBuslineDev.FLineID := 33;
  FInt := 333;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
  if Assigned(FBuslineDev) then
    FBuslineDev.Free;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add('调用F1,F2前:');
  Memo1.Lines.Add('FDevID: ' + IntToStr(FBuslineDev.FDevId) + '  FLineID: ' + IntToStr(FBuslineDev.FLineID) + ' FInt: ' + IntToStr(FInt));
  F1(FBuslineDev, FInt);
  Memo1.Lines.Add('调用F1后:');
  Memo1.Lines.Add('FDevID: ' + IntToStr(FBuslineDev.FDevId) + '  FLineID: ' + IntToStr(FBuslineDev.FLineID) + ' FInt: ' + IntToStr(FInt));
  F2(FBusLineDev, FInt);
  Memo1.Lines.Add('调用F2后:');
  Memo1.Lines.Add('FDevID: ' + IntToStr(FBuslineDev.FDevId) + '  FLineID: ' + IntToStr(FBuslineDev.FLineID) + ' FInt: ' + IntToStr(FInt));
end;procedure TForm1.F1(BusLineDev: TBusLineDev; IntValue: Integer);
begin
  BusLineDev.FDevId := 999;
  BusLineDev.FLineID := 9999;
  IntValue := 99999;
end;procedure TForm1.F2(var BusLineDev: TBusLineDev;var IntValue: Integer);
begin
  BusLineDev.FDevId := 888;
  BusLineDev.FLineID := 8888;
  IntValue := 88888;
end;点击按钮后,Memo中显示如下
调用F1,F2前:
FDevID: 3  FLineID: 33 FInt: 333
调用F1后:
FDevID: 999  FLineID: 9999 FInt: 333
调用F2后:
FDevID: 888  FLineID: 8888 FInt: 88888