Показать сообщение отдельно
  #1  
Старый 15.04.2009, 18:39
gralex gralex вне форума
Прохожий
 
Регистрация: 15.04.2009
Сообщения: 14
Репутация: 10
Восклицание помогите найти ошибку PLS

вот исходник кода, программа должна из строки Label1 переводить значение в Label2 с заменой букв а на б, пробелов на '-', и подсчитывать количество замен(в зависимости от того, поставлена галочка в CheckBox'ах или нет). У меня выдает ошибку в строках:
while Pos('а', s) > 0 do
s[Pos('a',s)]:='a';
while Pos(' ',s)>0 do
s[Pos(' ',s)]:='-';...
если заменить тип s на string, то программа запускается, но нужных действий не производит((( помогите... код вот:

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    Button1: TButton;
    Edit2: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
   n, s:integer;
   
begin
n:=0;
Edit3.Text:='';
Edit2.Text:='';
if CheckBox2.Checked then
  while Pos('а', s) > 0 do
  begin
  n:=n+1;
  s[Pos('a',s)]:='a';
 end;
if CheckBox3.Checked then
while Pos(' ',s)>0 do
  begin
  n:=n+1;
  s[Pos(' ',s)]:='-';
 end;
if CheckBox1.Checked then Edit3.Text:=IntToStr(n);
Edit2.Text:=s;

end;

end.
Admin: Пользуемся тегами!
Ответить с цитированием