Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.09.2011, 22:19
Xumuk Xumuk вне форума
Прохожий
 
Регистрация: 09.09.2011
Сообщения: 1
Репутация: 10
По умолчанию В чем ошибка?

Не получается запустить! Не пойму в чем-то ошибка или что-то пропустил. Помогите.
Код:
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.
Ответить с цитированием
  #2  
Старый 09.09.2011, 22:25
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Заверни всё в тег "CODE", иначе невозможно читать.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #3  
Старый 10.09.2011, 01:29
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Не знаю, что должно получиться (я не пытался вникнуть в идею автора, а только "причесал"), но примерно так:
Код:
unit Unit13;

interface

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

type
  TForm2 = class(TForm)
    AcceptBtn: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Memo1: TMemo;
    Memo2: TMemo;
    Memo3: TMemo;
    ProgressBar1: TProgressBar;
    MaskEdit1: TMaskEdit;
    SecretLabel: TLabel;
    Timer1: TTimer;
    procedure AcceptBtnClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SecretLabelClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure Init;
  end;

{==================================MyClass=====================================}
  TMatrix = class
  private
    Password : String; //Пароль
    Matr     : array[1..15, 1..15] of Integer; //Матрица Пароля
  public
    constructor Create;
    function ChkPsswrd(pwd : String) : Boolean; //Проверка пароля
    procedure GenPass; //Генерация пароля
  end;
{================================End of my class===============================}

var
  Form2    : TForm2;
  MyMatrix : TMatrix; //Объект моего класса

implementation

{$R *.dfm}

{================================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;

function TMatrix.ChkPsswrd(pwd : String) : Boolean;
begin
  ChkPsswrd := pwd = password; //Проверка пароля
end;

procedure TMatrix.GenPass;
begin
  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==============================}

procedure TForm2.FormCreate(Sender: TObject);
begin
  Init;
  Timer1.Enabled := True;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if Assigned(MyMatrix) then
    MyMatrix.Free;
end;

procedure TForm2.Init;
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;
end;

procedure TForm2.AcceptBtnClick(Sender: TObject);
begin
  if MaskEdit1.Text = MyMatrix.password then
    Timer1.Enabled := False;
end;

procedure TForm2.SecretLabelClick(Sender: TObject);
begin
  SecretLabel.Caption := MyMatrix.password;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
var
  I, J : Byte;
  LineBuffer : String;
begin
  if ProgressBar1.Position = 0 then
  begin
    if not Assigned(MyMatrix) then
      MyMatrix := TMatrix.Create;
    MyMatrix.GenPass;
    Memo1.Lines.Clear;
    Memo1.Update;
    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;
  end;
  ProgressBar1.Position := ProgressBar1.Position - 1;
end;

end.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:17.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter