Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Модуль Forms 65535
ТЕХНОЛОГИИ ДОСТ... 62989
Имитационное мо... 58321
Реклама
Сейчас на сайте
Гостей: 4
На сайте нет зарегистрированных пользователей

Пользователей: 13,091
новичок: avegraf
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Файл записей с выводом обратного заголовка на Turbo Pascal
Моделирование работы ЭВМ на GPSS + Пояснительная записка
База данных студентов на Delphi (файл записей) + Блок схемы

Реклама



Подписывайся на YouTube канал о программировании, что бы не пропустить новые видео!

ПОДПИСЫВАЙСЯ на канал о программировании
Пример приложения с модальными формами заставки и запроса пароля
Помимо формы-заставки нередко
в приложениях в начале работы появляется форма с запросом пароля. При
неверном пароле приложение  закрывается, не позволяя пользователю
работать с ним.


Рассмотрим один из способов
реализации формы-заставки и формы запроса пароля:


1. Откройте новое приложение (File|New Application). Это
будет главная форма. Свойству Name присвоим –
Fmain.


2. Добавьте новую форму (File|New form). Это будет
форма-заставка. Name – Flog. Ее свойство BorderStyle надо
сделать равным bsNone(4.1.3), чтобы в окне этой формы отсутствовала полоса
заголовка. Поместите на форме рисунки, надписи и т.п. Свойство
Position следует сделать равным poScreenCenter, чтобы форма
появлялась в центре экрана.


3. Написать обработчики событий, которые при любом
действии пользователя закрывали бы форму.
Щелкнуть на форме, чтобы в
Инспекторе объектов открылись относящиеся к ней страницы (если форма
закрыта панелями и т.п., нажимайте клавишу ESC). Перейти на страницу
Events инспектора объектов, выбрать событие onKeyDown и
написать обработчик, состоящий из одного оператора – Close.
Аналогично – для onMouseDown. Если на форме имеются метки,
компоненты Image и др., то выделить из все, задать в событии
onMouseDown ссылку на тот же обработчик, что и для формы, а в форме
поставить свойство KeyPreview в true, чтобы форма
перехватывала все связанные с нажатием клавиш события
компонентов.


Теперь форма будет закрываться при нажатии пользователем
любой клавиши или кнопки мыши.


4. Чтобы и при отсутствии каких-то действий со стороны
пользователя форма закрывалась сама, например , через 5 секунд, добавим на
форму компонент Timer со страницы System. Это невизуальный
компонент, который может отсчитывать интервалы времени. Интервал задается
в свойстве компонента Interval в миллисекундах – 5000. Единственное
событие таймера onTimer, наступающее по истечении заданного
интервала времени. Написать в обработчике этого события –
Close.


Теперь при любом действии или бездействии пользователя
форма заставка будет закрываться.


5. Чтобы удалить ненужную форму из памяти надо в событие
формы onClose вставить оператор:


Action:=caFree;


Форма-заставка готова к использованию (проверить свойства
Visible=true у форм). Сохранить проект, дав файлу модуля главной
формы имя Umain, а файлу модуля формы-заставки имя
Ulog.


Теперь можно записать в главной форме оператор
ShowModal. Для этого необходимо сослаться в модуле Umain на
модуль Ulog.


6. Для этого можно выполнить команду File|Use Unit.
(или Delphi сделает это сама при попытке компиляции
приложения).


7. Написать в модуле Umain обработчик события формы
onShow, состоящий из одного оператора:


Flog. ShowModal;


Событие onShow наступает перед тем, как форма
становится видимой. Поэтому в момент выполнения указанного оператора она
еще не видна. Оператор открывает форму как модальную, передает ей
управление и дальнейшее выполнение программы в модуле Umain
останавливается до тех пор, пока модальная форма не будет закрыта. После
закрытия модальной формы выполнение программы продолжается и главная форма
становится видимой.


Сохранить проект, запустить приложение и убедиться, что
все работает правильно.


Теперь добавим в приложение форму запроса пароля. Будем
использовать всего один пароль, который непосредственно укажем в
соответствующем операторе программы. И не будем давать пользователю
возможности исправить введенный пароль.


8. Добавить к приложению новую форму. Name – Fpsw и
сохранить ее модуль в файле – Upsw. Уменьшить размеры формы. Установить
свойство BorderStyle равным bsDialog, свойство Position равным
poScreenCenter, в свойстве Caption написать – «Введите пароль и нажмите
Enter».


9. Поместить в центре формы Edit1, в котором
пользователь будет вводить пароль, очистить свойство Text. В обработчике
события onKeyDown написать оператор:


if (key=VK_RETURN) then
begin
if
EPSW.Text='я'
then ModalResult:=6
else Close;
end;


Этот оператор анализирует нажатую клавишу. Если нажата
клавиша Enter, то введенный текст сличается с паролем. В данном операторе
для упрощения непосредственно указан правильный пароль – символ 'я'.


Если введен правильны пароль, то свойству ModalResult
присваивается некоторое условное число – 6 (можно выбрать и другое за
исключением 0 и 2). Если пароль неправильный, то выполняется метод Close.
В обоих случаях форма закрывается, так как задание отличного от 0
положительного значения ModalResult равносильно закрытию формы. При
правильном пароле – ModalResult=6, а при неправильном –
ModalResult=2


Теперь необходимо сослаться в модуле Umain на
модуль Upsw.


10.  Для этого можно выполнить команду File|Use
Unit
. (или Delphi сделает это сама при попытке компиляции
приложения), а в обработчике события onShow после оператора Flog.
ShowModal добавить оператор:


if (Fpsw.ShowModal<>6)
then
Close
else
begin
ShowMessage('Ваш пароль
'+Fpsw.EPSW.Text);
Fpsw.Free; //уничтожение формы пароля
запроса
end;


end;


То же самое можно было бы сделать и проще. В обработчике
события onKeyDown окна редактирование на форме FPSW можно было бы написать
более простой оператор:


if (key=VK_RETURN)and(EPSW.Text<>’a’)
then


Application/Terminate;


И операторы в главной форме тоже упрощаются:


Fpsw.ShowModal;
ShowMessage('Ваш пароль
'+Fpsw.EPSW.Text);
Fpsw.Free;


unit Umain;


interface


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


type
TFMain = class(TForm)
procedure
FormShow(Sender: TObject);
private
{ Private declarations
}
public
{ Public declarations }
end;


var
FMain: TFMain;


implementation


uses Ulog, Upsw;


{$R *.DFM}


procedure TFMain.FormShow(Sender: TObject);


begin


Flog.ShowModal;


if (Fpsw.ShowModal<>6)


then Close
else
begin
ShowMessage('Ваш пароль
'+Fpsw.EPSW.Text);
Fpsw.Free;
end;


end;


end.


unit Ulog;


interface


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


type
TFLog = class(TForm)
Label1:
TLabel;
procedure FormMouseDown(Sender: TObject; Button:
TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure
FormClose(Sender: TObject; var Action: TCloseAction);
private
{
Private declarations }
public
{ Public declarations
}
end;


var
FLog: TFLog;


implementation


{$R *.DFM}


procedure TFLog.FormMouseDown(Sender: TObject; Button:
TMouseButton;
Shift: TShiftState; X, Y: Integer);


begin


Close;


end;


procedure TFLog.FormClose(Sender: TObject; var Action:
TCloseAction);


begin


Action:=caFree;


end;


end.


unit Upsw;


interface


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


type
TFPSW = class(TForm)
Epsw: TEdit;
procedure
EpswKeyDown(Sender: TObject; var Key: Word;
Shift:
TShiftState);
private
{ Private declarations }
public
{ Public
declarations }
end;


var
FPSW: TFPSW;


implementation


{$R *.DFM}


procedure TFPSW.EpswKeyDown(Sender: TObject; var Key:
Word;
Shift: TShiftState);


begin


if (key=VK_RETURN) then
begin
if
EPSW.Text='я'
then ModalResult:=6
else Close;
end;


end;


end.

Опубликовал Kest October 25 2008 17:57:39 · 0 Комментариев · 10631 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
Нет комментариев.
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
Tag Игра "Пятнашк...
PHP 5. Практика с...
mmmJlabel
AJAX и PHP. разра...
База для Allsubmi...
ComboBox97
Алгоритм DES шифр...
Midi
Секреты программи...
Формирование отче...
Animation Effect ...
Cooltray
Керниган Б.В., Ри...
Delphix Sample [И...
NotePad Pro [Исхо...
Функции Visual Basic
Создание лабиринт...
Xrumer 4 Platinum...
Базы данных в Инт...
PHP: настольная к...

Топ загрузок
Приложение Клие... 100477
Delphi 7 Enterp... 87858
Converter AMR<-... 20082
GPSS World Stud... 13485
Borland C++Buil... 12053
Borland Delphi ... 8668
Turbo Pascal fo... 7048
Visual Studio 2... 5005
Калькулятор [Ис... 4906
FreeSMS v1.3.1 3545
Случайные статьи
Обзор панели управ...
Соединение абонент...
Общение в чате
Задание правил сох...
777 игровые автома...
Заблокирование от ...
Разберем детали. П...
Как обеспечить сов...
Контейнеры
только соединиться...
NIL expected
2-32)
Управление потоком...
Содержание
Декодер для адапти...
МИФ О ТУНГУССКОМ М...
Пишем троян
Взаимодействия кла...
Чего требует пятый...
10 самых крупных о...
Борьба с недопусти...
• При определении ...
Функция InstallUse...
Закругленные уголк...
Создание собственн...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?