Witam
Mam napisać program, który będzie zamieniał liczbę binarną na dziesiętną. Kod na obliczanie mam itp, ale nie wiem jak zrobić, że jak wpisuję do komponentu Edit1 liczbę binarną, to po kliknięciu w Button1 pojawi mi się wynik w Edit2. Jakby ktoś pomógł mi to przerobić.
Tutaj kody na zamianę które znalazłem na googlach:
function BinToInt(Value: string): Integer;
var
i, iValueSize: Integer;
begin
Result := 0;
iValueSize := Length(Value);
for i := iValueSize downto 1 do
if Value[i] = '1' then Result := Result + (1 shl (iValueSize - i));
end;
function IntToBin1(Value: Longint; Digits: Integer): string;
var
i: Integer;
begin
Result := '';
for i := Digits downto 0 do
if Value and (1 shl i) <> 0 then
Result := Result + '1'
else
Result := Result + '0';
end;
function IntToBin2(d: Longint): string;
var
x, p: Integer;
bin: string;
begin
bin := '';
for x := 1 to 8 * SizeOf(d) do
begin
if Odd(d) then bin := '1' + bin
else
bin := '0' + bin;
d := d shr 1;
end;
Delete(bin, 1, 8 * ((Pos('1', bin) - 1) div 8));
Result := bin;
end;
function BinToInt3(Value: String): LongInt;
var
i,Size: Integer;
begin
Result := 0;
Size := Length(Value);
if Size > 63 then
Size := 63;
Size := Size-1;
for i := Size downto 0 do
begin
if Value[i+1] = '1' then
Result := Result + (1 shl (Size-i));
end;
end;
Nie wiem co mam dodatkowo zadeklarować (o ile muszę), gdzie dodać funkcję, itp. Poniżej fragment mojego kodu, konkretnie przycisk Button1 zaprogramowany przeze mnie (sprawdza tylko czy jest coś wpisane i czy jest to liczba oraz mnoży podaną liczbę *2 <- to tylko dla sprawdzenia czy cokolwiek mi działa)
procedure TFormKalk.Button1Click(Sender: TObject);
{realizacja operacji przeliczania z liczby binarnej na liczbę dziesiętną}
begin
{kontrola czy użytkownik wprowadził liczbę}
if Edit1.Text=''
then
begin
ShowMessage('Wpisz liczbę!');
Exit;
end;
{konwersja i kontrola formy pierwszej liczby}
pomoc:=Edit1.Text;
Val(pomoc,liczba,blad);
if blad<>0
then
begin
ShowMessage('Błędna postać liczby! Popraw.');
Exit;
end;
begin {mnożenie liczby *2}
wynik:=liczba*2;
Str(wynik:5:0,pomoc);
Edit2.Text:=pomoc;
end;
end;