Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна защита для программы, Помогите догадаться)))) 
V
    Опции темы
AlexLogos
Дата 2.2.2011, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 23.4.2009

Репутация: нет
Всего: 1



Народ, профи, хелп! Я раньше уже спрашивал, но не получил (а может получил но не понял) ответа. Теперь мучаюсь всерьез этим вопросом. Вопрос следующий:
есть такая штука как файл проекта. Как пишет умная книга он содержит код главной программы с помощью которого создается окно главной формы либо обьекты других форм. Собственно команда Application.Run запускает приложение, но до этого можна запустить процедуру InitProc:=@процедура инициализации. Это используэтся для того чтоб, например, защитить прогу паролем. Пароль сидит в БД. Я хочу освоить этот прием и тоже так сделать.
Собственно вопрос:
Как мне в проекте запустить форму авторизации, получить доступ к базе, проверить юзера\пароля, удостовериться что такие есть, создать другие формы и запустить приложение? Получиться что-то типа
Код

program Reincarnation;

uses
  Forms,
  Main in 'Main.pas' {Main},
  AuthForm in 'AuthForm.pas' {AForm};

{$R *.res}


begin
  AuthForm.Create(nil);
  //жду ввода логина пароля и нажатия на кнопку "Вход"
  if авторизация успешна then
   begin
    Application.MainFormOnTaskbar := True;
    Application.CreateForm(TMain, Main);
    Application.Run;
   end
end.

Или лучше запустить форму авторизации и после проверки логина\пароля(в случае успеха) создавать другие формы?
Тогда будет просто так
Код

program Reincarnation;

uses
  Forms,
  Main in 'Main.pas' {Main},
  AuthForm in 'AuthForm.pas' {AForm};

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TAForm, AForm);
  Application.Run;
end.

Как действуют специалисты в этом случае? Ибо как мне однажды сказали - форма авторизации служит для того чтобы проверить пароль и умереть (или что-то близко к этому  smile )
PM MAIL   Вверх
CodeMonkey
Дата 2.2.2011, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1839
Регистрация: 24.6.2008
Где: Россия, Тверь

Репутация: 38
Всего: 89



Поищи поиском примеры Splash screen. Будет ровно то же самое.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
Snowy
Дата 2.2.2011, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

  AuthForm := TAuthForm.Create(nil);
  if AuthForm.ShowModal = mrOk then //жду ввода логина пароля и нажатия на кнопку "Вход"
   begin
    Application.MainFormOnTaskbar := True;
    Application.CreateForm(TMain, Main);
    Application.Run;
   end;
  AuthForm.Free;
У AuthForm установи ModalResult в mrCancel
Если пароль верный, устанавливай в mrOk
PM MAIL   Вверх
AlexLogos
Дата 2.2.2011, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 229
Регистрация: 23.4.2009

Репутация: нет
Всего: 1



Получилось вот так:
Код

program ParserReincarnation;

uses
  Forms,
  Parser2Main in 'Parser2Main.pas' {Main},
  AuthForm in 'AuthForm.pas' {AForm};

{$R *.res}

begin
  Application.Initialize;
  with TAForm.Create(nil) do
    begin
      ShowModal;
      if ModalResult = 1 then
        begin
         Application.MainFormOnTaskbar := True;
         Application.CreateForm(TMain, Main);
         //Application.CreateForm(TAForm, AForm);
         Application.Run;
        end;
      Free;
    end;
end.

в коде AuthForm
Код

procedure TAForm.FormCreate(Sender: TObject);
begin
ModalResult:=mrCancel;
end;

procedure TAForm.SBEnterClick(Sender: TObject);
begin
if (EdLogin.Text='1')and(MEPass.Text='1') then  ModalResult:=mrOk; //типа проверочка)))))
end;


Спасибо, гуру!!!! smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1191 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.