Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2009, 18:39   #1
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

доброе время суток,постараюсь объяснить свою проблему...значит есть мелкая прога form1...и есть еще одна форма form2..при открытии программы form1 деактивируется...а form2 активируется..на form2 есть edit1 и button1... чтобы form1 активировалась нужно ввести в edit1 определенный код и нажать button1...если код верный то form2 должна закрытся а form1 активироваться

я все вроде бы казалось бы сделал правильно...таким образом я хотел сделать своеобразную защиту программы..пока не введешь рег номер программа не заработает

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    procedure FormActivate(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.Color:=clred;
Button1.Enabled:=false;
Button2.Enabled:=true;
Button3.Enabled:=false;
Form1.Caption:='Red';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Color:=clyellow;
Button1.Enabled:=false;
Button2.Enabled:=false;
Button3.Enabled:=true;
Form1.Caption:='Yellow';
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Color:=clGreen;
Button1.Enabled:=true;
Button2.Enabled:=false;
Button3.Enabled:=false;
Form1.Caption:='Green';
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Enabled:=false;
form2.visible:=true;
end;

end.
Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

uses Unit1;

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var i,k:integer;
begin
k:=198827;
i:=strtoint(edit1.Text);
if i=k then
form1.enabled:=true;
form2.Visible:=false;
end;
end.
form2.close; тоже пробовал ...не закрывается...подскажите если не трудно...как сделать так чтоб form2 закрылась а form1 активировалась
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось Stilet; 28.07.2009 в 12:30.
betirsolt вне форума Ответить с цитированием
Старый 27.07.2009, 18:53   #2
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

вот тут вся проблема:
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
form1.Enabled:=false;
form2.visible:=true;
end;
у тебя когда форма1 активируется, то она сразу становится не активной и форма2 появляется.

А на форме2 ты жмешь кнопку и происходит это:

Код:
form1.enabled:=true;
form2.Visible:=false;
и опять срабатывает TForm1.FormActivate...

как решать?
попробуй это:
Код:
begin
form1.Enabled:=false;
form2.visible:=true;
end;
из procedure TForm1.FormActivate(Sender: TObject);
засунуть в procedure TForm1.FormCreate(Sender: TObject);
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд
TAVulator вне форума Ответить с цитированием
Старый 27.07.2009, 19:18   #3
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

сделал....компилируется без ошибок...но при открытии пишет access violition at address 0044b362 in module project1.exe read off address 00000358... а form2 вообще не появляется....что может быть??
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 27.07.2009, 19:34   #4
TAVulator
Программист
Форумчанин
 
Аватар для TAVulator
 
Регистрация: 23.07.2009
Сообщений: 101
По умолчанию

ну да...

тогда сделай так:
в форме1:
Код:
procedure TForm1.FormActivate(Sender: TObject);
begin
if form2.Enabled then
begin
form1.Enabled:=false;
form2.visible:=true;
end;
end;
в форме2 при нажатии на кнопку:

это:
Код:
form1.enabled:=true;
form2.Visible:=false;
замени на это:
Код:
form1.Enabled:=true;
form2.Enabled:=false;
form2.Close;
Если вы верите, что можете или не можете
сделать что-то, вы правы в обоих случаях.

______________________________(С) Г.Форд
TAVulator вне форума Ответить с цитированием
Старый 27.07.2009, 19:37   #5
stp56
 
Регистрация: 15.04.2009
Сообщений: 8
По умолчанию

а не проще сделать Hide и Show?
и потом условие, если edit равен твоему коду, то отображается вторая форма
stp56 вне форума Ответить с цитированием
Старый 27.07.2009, 19:40   #6
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Проще сделать так:
Первая форма.
Код:
Procedure TForm1.FormShow(Sender: TObject);
Begin
Form1.Enabled:=False;
Form2.ShowModal;
//Form2.Visible:=True;
End;
Вторая
Код:
Procedure TForm2.Button1Click(Sender: TObject);
Begin
If 198827 = StrToInt(Edit1.Text) Then
Form1.Enabled:=True;
Form2.Visible:=False;
Close;
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 27.07.2009, 20:40   #7
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

спасибо ребята))))все сработало с помощю show....


а почему когда я добавляю


If 198827 = StrToInt(Edit1.Text) Then
Form1.Enabled:=True;
Form2.Visible:=False;
Close;
else
showmessage('неверный код');
end;

пишет что ошибка что то с else не правильно.....подскажите
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны
betirsolt вне форума Ответить с цитированием
Старый 27.07.2009, 20:51   #8
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Перед else ";" не ставится
И вот так
Код:
If 198827 = StrToInt(Edit1.Text) Then
begin
Form1.Enabled:=True;
Form2.Visible:=False;
Close;
end
else
showmessage('неверный код');
psycho-coder вне форума Ответить с цитированием
Старый 27.07.2009, 23:21   #9
betirsolt
Форумчанин
 
Регистрация: 20.07.2009
Сообщений: 421
По умолчанию

Код:
procedure TForm2.Button1Click(Sender: TObject);
begin
If 198827 = StrToInt(Edit1.Text) Then
Form1.Enabled:=True;
Form2.Visible:=False;
Close;
end
else
showmessage('неверный код');
end.

вот так написал но все равно пишет что ошибка((((
[Pascal Error] Unit2.pas(36): E2029 ';' expected but 'ELSE' found
Уважаемые модераторы, Я всячески стараюсь не нарушать правила сайта, будьте снисходительны

Последний раз редактировалось Stilet; 03.08.2009 в 11:54.
betirsolt вне форума Ответить с цитированием
Старый 27.07.2009, 23:26   #10
Evgeniy26
Форумчанин
 
Аватар для Evgeniy26
 
Регистрация: 29.05.2009
Сообщений: 384
По умолчанию

Код:
If 198827 = StrToInt(Edit1.Text) Then
begin
  Form1.Enabled:=True;
  Form2.Visible:=False;
  Close;
end else
  showmessage('неверный код');
Ой не заметил #12 пост psycho-coder'a. psycho-coder тебе все написал, посты читай.

Последний раз редактировалось Evgeniy26; 27.07.2009 в 23:33.
Evgeniy26 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при организации формы загрузки... Oleg Romanchuk Общие вопросы Delphi 3 23.03.2009 10:48
Проблема с отображением формы во внедеренной DLL Leloush Общие вопросы Delphi 10 31.01.2009 16:03
Проблема при использовании модальной формы a1ias Помощь студентам 10 14.11.2008 17:29
проблема с показом формы после трея za4ot Общие вопросы Delphi 4 21.08.2008 12:35
Проблемма с закрытием MDIChild'ов KirkMETAL Помощь студентам 12 25.11.2007 07:06