Помогите с кодом в Delphi

компьютеры программирование программы Delphi Делфи

Не знаю что делать! Компилятор на переменную t ругается (Unit1.pas(59): For loop control variable must be simple local variable). Подскажите в чем проблема, переменную t я больше нигде не использую, кроме блока с циклом.

Сам код:

unit Unit1;

interface

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

type
TForm1 = class(TForm)
mmo1: TMemo;
btn1: TButton;
btn2: TButton;
procedure mmo1KeyPress(Sender: TObject; var Key: Char);
procedure btn1Click(Sender: TObject);
procedure btn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
i: Integer;
k: Integer;
p: Integer;
s: Integer;
e: String;
t: Integer;

implementation

{$R *.dfm}


procedure TForm1.mmo1KeyPress(Sender: TObject; var Key: Char);

begin


if (Key=#32) and (p<>1) then
begin
Inc(s);
p:=1;
end;

if (Key<>#32) and (Key<>#8) then
p:=0;

// ---------------------------------
if Key=#13 then
begin
t:=0;
e:=' ';
t:=5-i;
for 0 to t do
begin
e:=e+' ';
end;
Mmo1.Lines[Mmo1.Lines.Count-1] := Mmo1.Lines[Mmo1.Lines.Count-1] + e;
i:=0;
if k>5 then
k:=10;
end;
// ---------------------------------

if i=5 then
begin
mmo1.Lines.Add('');
i:=0;
end;



if k=10 then
begin
mmo1.Lines.Add('');
mmo1.Lines.Add('Ê-ñòü ñë³â íà ñòîð³íö³ - '+inttostr(s));
mmo1.Lines.Add('');
k:=0;
s:=0;
end;


Inc(i);
Inc(k);


if Key=#8 then
begin
if i>=2 then i:=i-2
else if i=1 then
i:=0;
end;

if Key=#8 then
begin
if k>=2 then k:=k-2
else if k=1 then
k:=0;
end;



end;



procedure TForm1.btn1Click(Sender: TObject);
begin
mmo1.Lines.LoadFromFile('Text.txt' );
end;

procedure TForm1.btn2Click(Sender: TObject);
begin
mmo1.lines.SaveToFile('Text.txt');
end;

end.
Ответы:
это значит что t должна быть объявлена в процедуре
у тебя переменная i не инициализирована и видимо после t:=5-i; в t храниться какой-нить NaN вот оно и ругается. Перенеси объявление переменных в процедуру и проверь чтобы они инициализировались перед использованием.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.