![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
форма по вводу пароля и создание основной [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.