Hola Nicolas.
No hay problema, sos nuevo y es lógico pero si nadie te lo dice, no vas a usar las etiquetas...
Estuve corrigiendo un poco tu código y así parece funcionar bién:
Código Delphi
[-]
...
implementation
uses Math;
function TForm1.sp (s:string ;bp:integer):string; var
i:integer;
m:Extended;
begin
m:=0;
For i:=1 to Length(s) do
case s[i] Of
'A' : m:= m + 10* Power(bp,Length(s) - i);
'B' : m:= m + 11* Power(bp,Length(s) - i);
'C' : m:= m + 12* Power(bp,Length(s) - i);
'D' : m:= m + 13* Power(bp,Length(s) - i);
'E' : m:= m + 14* Power(bp,Length(s) - i);
'F' : m:= m + 15* Power(bp,Length(s) - i);
else
m:= m + StrToInt(s[i])*Power(bp,Length(s)-i);
end;
result:=FloatToStr(m);
end;
function TForm1.dr (s:string; bl:integer):string; var
num: integer;
d:integer;
resultado:string;
begin
num:= StrToInt(s);
resultado:= '';
while (num > 0) do
begin
d:= num mod bl;
num:= num div bl;
case d of
10: resultado:= 'A' + resultado;
11: resultado:= 'B' + resultado;
12: resultado:= 'C' + resultado;
13: resultado:= 'D' + resultado;
14: resultado:= 'E' + resultado;
15: resultado:= 'F' + resultado;
else
resultado:= IntToStr(d) + resultado;
end;
end;
Result:= resultado;
end;
procedure TForm1.eKeyPress(Sender: TObject; var Key: Char);
begin
case RgBase.ItemIndex Of
0: If not (Key in ['1','0', #8]) then key:= #0;
1: If not (Key in ['0'..'7', #8]) then key:= #0;
2: If not (Key in ['0'..'9', #8]) then key:= #0;
3: If not (Key in ['A'..'F', '0'..'9', #8]) then key:= #0;
end;
end;
procedure TForm1.rgBaseClickClick(Sender: TObject);
begin
e.Enabled := true;
e.SetFocus;
if rgbase.ItemIndex <> 2 then begin
case rgbase.ItemIndex of
0: e.Text := dr(e.Text,2);
1: e.Text := dr(e.Text,8);
2: e.Text := dr(e.Text,10);
3: e.Text := dr(e.Text,16)
end;
end
else begin
case rgbase.ItemIndex of
0 : e.Text := sp(e.Text,2);
1 : e.Text:= sp(e.Text,8);
2 : e.Text:= sp(e.Text,10);
3 : e.text:= sp(e.Text,16);
end;
end;
end;
end.
Cualquier duda o problema avisame y te adjunto los fuentes de mi prueba.
Un saludo.