- Swap کردن دو متغیر بدون استفاده از متغیر موقتی
برای جابجا کردن مقادیر دو متغیر معمولا از متغیر سومی به این شکل استفاده می شه:
temp := a;
a := b;
b := temp;
اما با محاسبات ریاضی می تونید بدون اون هم عمل کنید!
جابجایی دو عدد:
var
a, b: Integer;
begin
a := 100;
b := 200;
a := a + b;
b := a - b;
a := a - b;
ShowMessage('a = ' + IntToStr(a) + ', b = ' + IntToStr(b));
end;
اگر کاراکتر بود چی؟!
var
a, b: char;
begin
a := 'A';
b := 'B';
a := chr( ord(a) + ord(b) );
b := chr( ord(a) - ord(b) );
a := chr( ord(a) - ord(b) );
ShowMessage('a = ' + a + ', b = ' + b);
end;
خب اگر رشته بود؟
var
a, b: string;
begin
a := 'salam';
b := 'test';
integer(a) := integer(a) + integer(b);
integer(b) := integer(a) - integer(b);
integer(a) := integer(a) - integer(b);
ShowMessage('a = ' + a + ', b = ' + b);
end;
و البته اگر شی بود!
integer(Button1) := integer(Button1) + integer(Button2);
integer(Button2) := integer(Button1) - integer(Button2);
integer(Button1) := integer(Button1) - integer(Button2);
ShowMessage('Button1 = ' + Button1.Caption + ', Button2 = ' + Button2.Caption);