Показать сообщение отдельно
  #7  
Старый 05.05.2014, 18:02
Guerron Guerron вне форума
Прохожий
 
Регистрация: 28.04.2014
Адрес: Москва
Сообщения: 6
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Вот исправленный код:
Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    Edit1: TEdit;
    Edit2: TEdit;
    Memo1: TMemo;
    Panel2: TPanel;
    Panel3: TPanel;
    Label1: TLabel;
    BitBtn1: TBitBtn;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

//type
//  A=array[0..100] of integer;
//  B=array[0..100] of integer;
var
  A:array[0..100] of integer;
  B:array[0..100] of integer;
  Form1: TForm1;
  N1,N2:String;
  N11,N22,minA,minB:integer;

implementation

{$R *.dfm}

//label restart;
procedure TForm1.FormCreate(Sender: TObject);
begin
  Button2.Enabled:=False;
  Button3.Enabled:=False;
  Button4.Enabled:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
var a1,b1:Integer;
begin
  N1:=Edit1.Text;
  N2:=Edit2.Text;
  N11:=StrToInt(N1);
  N22:=StrToInt(N2);
  if N11<=0 then
    N11:=1
  Else if N11>99 then
    N11:=99;
  {else
    ShowMessage('Длина массива X: Введите число');}
  if N22<=0 then
    N22:=1
  Else if N22>99 then
    N22:=99;
  {else
    ShowMessage('Длина массива Y: Введите число');}
  randomize;
  for a1:=0 to N11-1 do
    A[a1]:=(-99+random(198));;
  for b1:=0 to N22-1 do
    B[b1]:=-99+random(198);
  Button2.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
var a1,b1:Integer;
begin
  N1:=Edit1.Text;
  N2:=Edit2.Text;
  N11:=StrToInt(N1);
  N22:=StrToInt(N2);
  minA:=100;
  minB:=100;
  for a1:=1 to N11-1 do
    if A[a1]<minA then
      minA:=A[a1];
  for b1:=1 to N22-1 do
    if B[b1]<minB then
      minB:=B[b1];
  Button3.Enabled:=True;
end;

procedure TForm1.Button3Click(Sender: TObject);
var t:Integer;
begin
  if minA<=minB then
    t:=minA
  else t:=minB;
  Memo1.Lines.Clear;
  Memo1.Lines.Add('t='+IntToStr(t)+' |  '+'min of A='+
  IntToStr(minA)+'  |  '+'min of B'+IntToStr(minB));
  Button4.Enabled:=True;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
  Edit1.Text:='Длина массива X';
  Edit2.Text:='Длина массива Y';
  Memo1.Lines.Clear;
  Memo1.Lines.Add('Здесь будет результат программы (значение t) и'');
  Memo1.Lines.Add('минимальные значения матриц X и Y.');

end;
//goto restart;

end.
В целом всё работает, но хочу, чтобы
а) после нажатия 4-й кнопки 2,3 и 4-я кнопки отключались как при создании формы
б) при нажатии 4-й кнопки в поле Memo1
Ответить с цитированием