Создание пароля

Тема в разделе "Pascal and Delphi", создана пользователем chiksa20001, 17 май 2011.

Статус темы:
Закрыта.
  1. chiksa20001

    chiksa20001 Гость

    Привет, помогите, пожалуйста, исправить ошибки, я новичок и плохо в этом разбираюсь((( вот такая задача: В памяти компьютера в зашифрованном виде хранится восьмистишье. Компьютер выводит слово, а пользователь должен ввести номер строки и номер позиции слова в строке в виде одного числа. Трехкратный неправильный ввод приводит к предупреждению на экране, что за компьютером злоумышленник, после чего через 30 секунд экран отключается.
    Вот к ней код, но форма не выводится, а сразу выключается экран, помогите...

    Код (Text):
    var
    Form2: TForm2;
    sl:TStringList;

    _count: byte;
    _simb: byte;
    mas1, mas2: array[0..130] of byte;
    _index: byte;
    str1,str2: string;
    i: byte;
    k: integer;
    f,w:SYSTEM.text;
    x,y,a,z,b,t,p:String;


    implementation

    uses Unit1;

    {$R *.dfm}

    procedure CreateNumber;
    var i: byte;
    label _new;
    begin
    Randomize;
    While _count < 4 do
    begin
    _new: _simb:= Random(4) + 1;
    Application.ProcessMessages;

    X := INTTOSTR(1);
    Y := INTTOSTR(2);
    A := INTTOSTR(3);
    Z:= INTTOSTR(4);

    for i:= 0 to 120 do
    begin
    if _simb = mas1[i] then GOTO _new;
    end;
    mas1[_index]:= _simb;
    Inc(_index);
    Inc(_count);

    end;
    end;

    procedure TForm2.FormCreate(Sender: TObject);
    begin
    sl:= TStringList.Create;
    try
    sl.LoadFromFile('C:\Documents and Settings\User\Рабочий стол\Задача 4\Stih.txt');

    finally
    sl.Free;
    end;
    Timer1.Interval := 30000;
    AssignFile(Input,'Sti.txt');
    reset(Input);
    Read(Input,str1);
    CloseFile(Input);
    edit1.Text:=str1;

    CreateNumber;
    mas2[0]:= mas1[3];
    mas2[1]:= mas1[2];
    mas2[2]:= mas1[1];
    mas2[3]:= mas1[0];
    for i:=0 to 3 do
    begin
    Edit2.Text:= Edit2.Text + IntToStr(mas1[i]) + ' ';

    end;
    k:=0;

    if FileExists('Stih.txt') then
    begin
    AssignFile(w,'Stih.txt');
    reset(w);
    Readln(w,t);
    CloseFile(w);
    //ShowMessage(t);
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
    if (t=p) or (t>p) then
    begin
    messagedlg('За компьтером здоумышленник',mtError,[mbOk],0);
    Application.Terminate;

    end;
    end;
    end;
    procedure TForm2.BitBtn1Click(Sender: TObject);
    begin
    Timer1.Interval := 30000;
    end;

    procedure TForm2.N11Click(Sender: TObject);
    begin
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1); //включает монитор

    end;


    procedure TForm2.BitBtn2Click(Sender: TObject);
    begin
    AssignFile(Input,'Sti.txt');
    reset(Input);
    Read(Input,str1);
    CloseFile(Input);
    edit1.Text:=str1;

    if edit1.Text<>str2 then
    begin
    k:=k+1;
    messagedlg('Неверный пароль! Осталось '+inttostr(3-k)+' попытки',mtError,[mbOk],0);
    if k>=3 then
    begin
    messagedlg('За компьтером здоумышленник',mtError,[mbOk],0);
    Timer1.Interval := 30000;
    AssignFile(f,'Sti.txt');
    Rewrite(f);
    Write(f,B);
    CloseFile(f);
    form1.Close;
    end;
    end
    else
    begin
    if edit1.Text=str2 then
    begin
    form1.Hide;
    form2.Show;
    end;
    end;
    end;


    procedure TForm2.BitBtn3Click(Sender: TObject);
    begin
    application.Terminate;
    end;

    procedure TForm2.Timer1Timer(Sender: TObject);
    begin
    SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
    end;





    end.
     
  2. nayke

    nayke Well-Known Member

    Регистрация:
    4 авг 2010
    Сообщения:
    310
    Симпатии:
    0
     
  3. Dock1100

    Dock1100 :-]

    Регистрация:
    9 ноя 2009
    Сообщения:
    678
    Симпатии:
    0
    возможно надо свойство таймера enabled выставить в false, а потом когда нужно что бы он начал работать поменять програvмно на true.
    И можете еще файл формы (*.dfm) выложить?
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей