Hi,
muss die Zahl denn unbedingt über mehrere Edits verteilt werden? Was machst du, wenn was anderes als 0 oder 1 eingegeben wird, z. B. 123?
Für ein einzelnes Edit gibt es schon jede Menge Lösungen...
BinToInt
Ich würde es ganz spontan so lösen... Natürlich sollte man die Meldungen der Exceptions noch überarbeiten...
Delphi-Quellcode:
function BinToInt{64}(const Bin: String): Integer {Int64};
var
I, L: Integer;
begin
L := Length(Bin);
if L = 0 then
raise EConvertError.Create('String ist leer!!');
if L > 32 {64} then
raise EConvertError.Create('String zu lang!');
Result := 0;
for I := 1 to L do
case Bin[I] of
'0':;
'1': Result := Result or (1 shl (L-I));
else
raise EConvertError.Create('Nur Ziffern 0 und 1 erlaubt!');
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := IntToStr(BinToInt(Edit1.Text));
end;
Mfg
FAlter