Показать сообщение отдельно
  #1  
Старый 21.10.2009, 22:05
inferno mf inferno mf вне форума
Прохожий
 
Регистрация: 13.09.2009
Сообщения: 19
Репутация: 10
По умолчанию перевод из двоичной, в чем ошибка?

Нужно оформить алгоритм в виде подпрограммы. Без нее работает отлично, но нужно именно так... Возникает ошибка "Statement expected but 'PROCEDURE' found ". В чем дело?

PHP код:
unit Unit1;

interface

uses
  Windows
, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  
Dialogs, StdCtrls;

type
  TForm1 
= class(TForm)
    
Edit1: TEdit;
    
Edit2: TEdit;
    
procedure FormCreate(Sender: TObject);
    
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
  private
    { Private 
declarations }
  public
    { Public 
declarations }
  
end;

var
  
Form1: TForm1;

implementation

{$R *.dfm}

function 
st(s:string):string;
 var 
i,j,sum,sum2:integer;
 
begin
 sum
:=0;
 for 
i:=Length(s)-1 downto 1 do
 
begin
 
if s[i]='1' then
  begin
  sum2
:=1;
  for 
j:=1 to Length(s)-i do sum2:=sum2*2;
  
end
  
else sum2:=0;
  
sum:=sum+sum2;
 
end;
 if 
s[Length(s)]='1' then Inc(sum);

  
procedure TForm1.FormCreate(Sender: TObject);
begin
 Edit1
.Clear;
  
Edit2.Clear;
end;


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
    
if Key = #13 then Edit2.Text:=st(Edit1.Text);
end;

end. 

С этим уже разобрался.. энда не хватало, но после нажатия Enter числа в 1-ой строке не появляется результат перевода...
Ответить с цитированием