求教过程无法实现是过程有关问题还是调用有关问题

求教过程无法实现是过程问题还是调用问题
procedure TForm1.switch(a,b:integer);
var
m:integer;
begin
  if a<b then
  begin
  m:=a;
  a:=b;
  b:=m;
  end;
  end;
procedure TForm1.Button1Click(Sender: TObject);
var
 j,k:integer;
begin
 j:=StrToInt(Edit1.Text);
 k:=StrToInt(Edit2.Text);
 switch(j,k);
 Edit1.Text:=IntToStr(j);
 Edit2.Text:=IntToStr(k);

end;

end.
 

[Hint] Unit1.pas(39): Value assigned to 'b' never used
[Hint] Unit1.pas(39): Value assigned to 'a' never used
[Hint] Unit1.pas(39): Value assigned to 'm' never used
程序运行结果无法实现j与k的值交换 提示 a,b,m没有被使用到 
请教出在哪儿


------解决方案--------------------
procedure TForm1.switch(a,b:integer);
改成
procedure TForm1.switch(var a,b:integer);

传值 和 传指针 的区别,可以百度google一下
------解决方案--------------------
switch(var a:integer;var b:integer)