Кстати, переменная цикла
i у Вас то же глобальная, чего все книжки по паскалю настоятельно не рекомендуют делать.
Если S1 и S2 сделать локальными внутри функции OutRes, то к ним нельзя будет достучаться ни до, ни после вызова этой функции.
А если хотите сделать всё по-правилам, то нужно писать класс, примерно такой.
Код:
type
TClassRez = class
private
FS1,FS2:String;
public
procedure Clear;
procedure OutRez(I:Integer;Rez:Byte);
public
property S1:String read FS1;
property S2:String read FS2;
end;
Код:
procedure TClassRez.Clear;
begin
FS1:='';
FS2:='';
end;
procedure TClassRez.OutRez(I:Integer;Rez:Byte);
begin
if i>2 then
s1:=s1+IntToStr(rez)
else
s2:=s2+IntToStr(rez);
end;
и соответственно
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
ClassRTez: TClassRes;
begin
randomize; // <<==-- нельзя делать внутри цикла
ClassRTez:= TClassRes.Create; (* создаём, строки автоматически становятся пустыми*)
Label1.Caption:='';
for i:=5 downto 0 do
begin
rez:=0;
a:=random(2); b:=random(2); c:=random(2);
inc(rez,a);inc(rez,b);inc(rez,c);
if rez<2 then
rez:=0
else
rez:=1;
ClassRez.OutRez(i,Rez);
Label1.Caption:=Label1.Caption+' '+IntToStr(rez);
end;
ShowMessage('s1 = '+ClassRez.s1+' s2 = '+ClassRez.s2 );
ClassRez.Free; //<<==-- уничтожаем
end;
Для дальнеёшего развития код цикла тоже можно сделать методом класса