Показать сообщение отдельно
  #1  
Старый 02.11.2015, 19:31
username12 username12 вне форума
Прохожий
 
Регистрация: 11.10.2015
Сообщения: 8
Версия Delphi: delpphi 10
Репутация: 10
По умолчанию Выдает ошибки, что делать?

Задача звучит так
Дана строка, состоящая из групп нулей и единиц. Найти и вывести на экран группы с четным количеством символов
Код:
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    ComboBox1: TComboBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Memo1: TMemo;
    Button1: TButton;
    procedure FormActivate(Sender: TObject);
    procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
    procedure ComboBox1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
//Обработка события активизации формы
procedure TForm1.FormActivate(Sender: TObject);
begin
ComboBox1.SetFocus; //передача фокуса в ComboBox1
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
 
end;
 
//Обработка события нажатия левой кнопки мыши
procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin //если нажата клавиша Enter
ComboBox1.Items.Add(ComboBox1.Text); //строка из окна редактирования заносится в      // список выбора
ComboBox1.Text:=' '; //очистка окна редактирования
end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
var
 CPos: word;
  SPos: word;
begin
  SPos := 1;
  with Edit1 do
    for CPos := 1 to Length(Text) do
      if Text[CPos] <> Text[CPos+1]
        then
          begin
            if ((CPos-SPos+1) mod 2) = 0
              then
                ListBox1.Items.Add(Copy(Text, SPos, CPos-SPos+1));
            SPos := CPos+1;
end;
 
procedure TForm1.ComboBox1Click(Sender: TObject);
var
st:string;
n,i,nst,ind:integer;  a:array [1..3] of char;  b:boolean; s:real;
begin
n:=0;    //n-число слов в строке
ind:=0;
nst:= ComboBox1.ItemIndex; // определение номера выбранной строки
st:= ComboBox1.Items[nst]; //занесение выделенной строки в переменную st
for i:=1 to Length(st) do
begin
n:=length('st');
end;
If (n MOD 2) =0 then
 
memo1.Lines.add('Четное')
else
memo1.Lines.add('Нечетное');
end;
end.
Ответить с цитированием