*seufz* Was steht denn in a und was in b? Ach, ich geb es auf, mach damit, was Du willst:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i, zahl1, zahl2, differenz, durchlauf: integer;
park, zahltext: string;
doppelt: boolean;
a, b: array [1 .. 4] of string;
begin
zahltext := Edit1.text;
for i := 1 to 4 do
begin
a[i] := copy(zahltext, i, 1);
b[i] := copy(zahltext, i, 1);
end;
durchlauf := 1;
repeat
doppelt := true;
for i := Low(a) to High(a) - durchlauf do
if a[i] > a[i + 1] then
begin
park := a[i];
a[i] := a[i + 1];
a[i + 1] := park;
doppelt := false;
end;
durchlauf := durchlauf + 1;
until doppelt;
durchlauf := 1;
repeat
doppelt := true;
for i := Low(b) to High(b) - durchlauf do
if b[i] < b[i + 1] then
begin
park := b[i];
b[i] := b[i + 1];
b[i + 1] := park;
doppelt := false;
end;
durchlauf := durchlauf + 1;
until doppelt;
try
zahl1 := StrToInt(a[1] + a[2] + a[3] + a[4]);
zahl2 := StrToInt(b[1] + b[2] + b[3] + b[4]);
differenz := zahl2 - zahl1;
Edit2.text := IntToStr(differenz);
except
on EConvertError do
ShowMessage('Ungültige Zahl eingegeben');
end;
end;
Wobei das so ziemlich die lausigste Möglichkeit ist, das Problem zu lösen, aber Du wolltest es ja so.