![]() |
|
#1
|
|||
|
|||
![]() Не получается запустить! Не пойму в чем-то ошибка или что-то пропустил. Помогите.
Код:
unit Unit1; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs, StdCtrls, ExtCtrls, MaskEdit, ComCtrls; type { TMainForm } TMainForm = class(TForm) AcceptBtn: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; ProgressBar1: TProgressBar; SecretLabel: TLabel; MaskEdit1: TMaskEdit; Memo1: TMemo; Memo2: TMemo; Memo3: TMemo; Timer1: TTimer; procedure AcceptBtnClick(Sender: TObject); procedure FormCloseQuery(Sender: TObject; var CanClose: boolean); procedure FormCreate(Sender: TObject); procedure FormShow(Sender: TObject); procedure SecretLabelClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); private { private declarations } public { public declarations } end; {==================================MyClass=====================================} TMatrix=class(TObject) Password:String; //Пароль Matr:array[1..15,1..15] of integer; //Матрица Пароля Constructor Create; Destructor Destroy; Function ChkPsswrd(pwd:string):boolean; //Проверка пароля Procedure GenPass; //Генерация пароля end; {================================End of my class===============================} var MainForm: TMainForm; CC:boolean; //переменная CanClose MyMatrix:TMatrix; //Объект моего класса implementation {================================My class' methods=============================} Constructor TMatrix.Create; var i,j:byte; begin Inherited Create; //Создание родительского объекта Randomize; For i:=1 to 15 do For j:=1 to 15 do Matr[i,j]:=random(9); //Случайное заполнение end; Destructor TMatrix.Destroy; begin inherited; end; Function TMatrix.ChkPsswrd(pwd:string):boolean; begin if pwd=password then ChkPsswrd:=true; //Проверка пароля end; Procedure TMatrix.GenPass; begin password:=''; //Ни разу не глупо password:=IntToStr(Matr[10,11]); password:=password+IntToStr(Matr[7,7]); //С миру по нитке... password:=password+IntToStr(Matr[5,12]); password:=password+IntToStr(Matr[11,2]); end; {========================End of my class' methods==============================} { TMainForm } procedure TMainForm.AcceptBtnClick(Sender: TObject); begin if Maskedit1.Text=MyMatrix.password then begin cc:=true; timer1.Enabled:=False; end; end; procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: boolean); begin CanClose:=CC; If cc=true then TMyMatrix.Destroy; end; procedure TMainForm.FormCreate(Sender: TObject); begin CC:= False; end; procedure TMainForm.FormShow(Sender: TObject); var i,j: byte; LineBuffer: string; begin MyMatrix:=TMatrix.Create; MyMatrix.GenPass; Memo1.Lines.Clear; linebuffer:=''; for i:=1 to 15 do begin for j := 1 to 15 do linebuffer:=LineBuffer+inttostr(MyMatrix.Matr[i,j])+' '; Memo1.Lines.Add(linebuffer); linebuffer:=''; end; Timer1.Enabled:=True; end; procedure TMainForm.SecretLabelClick(Sender: TObject); begin SecretLabel.Caption:=MyMatrix.password; end; procedure TMainForm.Timer1Timer(Sender: TObject); var i,j: byte; LineBuffer: string; begin ProgressBar1.Position:=ProgressBar1.Position-1; if ProgressBar1.Position=0 then begin MyMatrix:=TMatrix.Create; MyMatrix.GenPass; Memo1.Lines.Clear; linebuffer:=''; //так будет лучше для всех for i:=1 to 15 do begin for j := 1 to 15 do linebuffer:=LineBuffer+inttostr(MyMatrix.Matr[i,j])+' '; Memo1.Lines.Add(linebuffer); linebuffer:=''; end; ProgressBar1.Position:=30; Timer1.Enabled:=True; end; end; initialization {$I unit1.lrs} end. Последний раз редактировалось Admin, 09.09.2011 в 22:31. |