Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

форма по вводу пароля и создание основной [D6, Win2k]


denis24 ©   (2004-11-26 20:06:00) 

Помогите пожалуста!
Есть проэкт в котором при загрузке создается форма по проверке сер.номера в реестре.Если номер правильный то эта форма прячется и создается и основная форма.Если значение не соотв желаемому то форма показывается с предложением ввести сер .номер
Если номер совпадает то открыв осн.форма.Если нет прилож выгруж.

procedure TfrmCheck.FormCreate(Sender: TObject);
begin
try
Reg := TRegistry.Create;
Reg.RootKey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('......',false) then
begin
   check_app:= Reg.ReadString('MyApp');
        if check_app='00000000' THEN
        frmMain:=TfrmMain.Create (self);
end
else
frmCheck.Show;

finally
reg.Free;
end;
end;
В frmmain.formcreate прячу форму frmcheck
frmCheck.Hide;

Но в итоге у меня главная форма запускается и показывается а проверочнач frmcheck остается на єкране.
Где мне ее прятать?
В


denis24   (2004-11-28 12:30:00) [1]

Если я пишу
program Project2;
.
.
.
frmCheck:=TfrmCheck.Create (self);
То пишет
[Error] Project2.dpr(35): Undeclared identifier: 'self'


GuAV   (2004-11-28 00:59:00) [2]

GanibalLector ©   (27.11.04 23:00) [7]

Unit VasyaPupkinExtras was compiled with a different version of Dialogs.dcu


GanibalLector   (2004-11-27 23:00:00) [3]

2 begin...end ©
...а также загомаченный Dialogs.pas.
Во-первых я изменил только ОДНУ строку генофонда!!!
Если уж и так не нравиЦа,то копируем Dialogs.pas в папку пректа...там правим...и сипользуем.Генофонд останется в целосности


GanibalLector   (2004-11-27 22:57:00) [4]

2 denis24   (27.11.04 16:15) [3]

program Project1;

uses
 Forms, Registry,Dialogs,
 Unit1 in 'Unit1.pas' {Form1};

{$R *.RES}
var Reg:TRegistry;st:string;
begin
Reg:=TRegistry.Create;
Reg.OpenKey('Software',true);
Reg.OpenKey('Zalizo',true);
st:= Reg.ReadString('password');
Reg.Free;
if InputBox('password','старый пароль :'+st,'')<>'' then begin

 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;      end;
end.


begin...end   (2004-11-27 16:35:00) [5]


> [2] GanibalLector ©   (26.11.04 22:53)


> правим  Dialogs.pas


> Результаты : ...

...а также загомаченный Dialogs.pas.


GuAV   (2004-11-27 16:22:00) [6]

делай проверку в dpr


denis24   (2004-11-27 16:15:00) [7]

А если я хочу обратится через tregistry к реестру и прочитать из него значения как без создания формы обойтись?


GanibalLector   (2004-11-26 22:53:00) [8]

Что-бы при вводе ничего небыло видно правим  Dialogs.pas так :
...
       Width := MulDiv(164, DialogUnits.X, 4);
       MaxLength := 255;
       Text := Value;
       if  ACaption='Password' then PasswordChar:='*';
       SelectAll;
...
Результаты : просто,надежно,минимум кода,никаких лишних форм.


GanibalLector   (2004-11-26 22:51:00) [9]

Открой *.dpr своего проекта и что-то типа :

begin
 if InputBox('Password','Введите пароль','')<>'' then begin
 // тут твои действия...
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 Application.Run;end;
end.


Наверх

Титульная страница Поиск, карта сайта Написать письмо