Du weist nirgendswo Werte den s1, .., s4 Variablen zu!
Mit ner Schleife ginge es evt. so (sollte auch für dich verständlich sein)
Delphi-Quellcode:
var
binStr : String;
binVal : Integer;
decVal : Integer;
i : Integer;
begin
binStr := edit1.Text;
decVal := 0;
binVal := 1;
for i := Length(binStr) downto 1 do
begin
if binStr[i] = '1' then
decVal := decVal + binVal;
binVal := binVal * 2;
end;
edit2.Text := IntToStr(decVal);
end;