Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/111: Рейтинг темы: голосов - 111, средняя оценка - 4.54
5 / 5 / 3
Регистрация: 02.11.2010
Сообщений: 140

закрытие формы

01.12.2010, 11:32. Показов 22893. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
подскажите как сделать чтобы форма закрывалась только в том случае

если введеный пароль на другой форме не правильный, либо нажали на крестик (справа сверху)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.12.2010, 11:32
Ответы с готовыми решениями:

Вызов модальной формы из модальной, нужно:закрытие последней и не закрытие первой.
1. Вызываю модальную форму из главной формы (немодальной). 2. Вызываю другую модальную форму из первой (п.1) модальной формы. 3....

Закрытие формы
Как можно закрыть форму с событием FormCloseQuery: CanClose:= False; При этом не убивая процесс программы

Закрытие формы
Первая форма в проге это авторизация, после прохождения её она Showhide; и дальше я работаю с формами, конечная form4 на ней я включил...

12
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
01.12.2010, 11:42
tager3, смотря как проводитса проверка правильности пароля... ну например Application.Terminate - закрывает программу. теперь думайте куды ето вставить ня)
0
5 / 5 / 3
Регистрация: 02.11.2010
Сообщений: 140
01.12.2010, 11:58  [ТС]
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Button1Click(Sender: TObject);
begin
if edit1.Text<>memo1.text then
 Begin
  ShowMessage('неверный пароль');
 
  form1.close;
  form16.close;
 End else
 form1.Close;
 
end;
это авторизация
Delphi
1
2
3
4
5
6
7
procedure TForm16.FormActivate(Sender: TObject);
begin
 
Form1.ShowModal
 
 
end;
это главная форма

ВОПРОС как сделать так что если нажимаеш на крести на форме авторизации то главная форма не запускалась тоже
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
01.12.2010, 12:38
у формы в events есть такое onclose в него и пишете нужное условие которое будет выполнятса при альт+ф4 или тыцканье на крестеке... вот небольшой
интересный отрывок :
Уничтожение

При уничтожении формы, события генерируются в следующем порядке:

... OnCloseQuery -> OnClose -> OnDeactivate -> OnHide -> OnDestroy

OnCloseQuery

Если мы попытаемся закрыть форму при помощи метода Close либо другим доступным способом (Alt+F4 либо через системное меню), то сгенерируется событие OnCloseQuery. Таким образом, это событие можно использовать, чтобы предотвратить закрытие формы. Обычно, событие OnCloseQuery используется для того, чтобы спросить пользователя - уверен ли он (возможно в приложении остались несохранённые данные).
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageDlg('Really close this window?', mtConfirmation,
[mbOk, mbCancel], 0) = mrCancel then
CanClose := False;
end;

Обработчик события OnCloseQuery содержит переменную CanClose, которая определяет, можно ли форме закрыться. Изначальное значение этой переменной True. Однако в обработчике OnCloseQuery можно установить возвращаемое значение CloseQuery в False, чтобы прервать выполнение метода Close.

OnClose

Если OnCloseQuery вернул CanClose=True (что указывает на то, что форма должна быть закрыта), то будет будет сгенерировано событие OnClose. Событие OnClose даёт последний шанс, чтобы предотвратить закрытие формы. Обработчик OnClose имеет параметр Action со следующими четырьмя возможными значениями: caNone. Форме не разрешено закрыться. Всё равно, что мы установим CanClose в False в OnCloseQuery. caHide. Вместо закрытия, форма будет скрыта. caFree. Форма будет закрыта, и занятые ей ресурсы будут освобождены. caMinimize. Вместо закрытия, форма будет минимизирована. Это значение устанавливается поумолчанию у дочерних форм MDI.

Замечание: Когда пользователь шутдаунит Windows, то будет вызвано OnCloseQuery, а не OnClose. Если Вы не хотите, чтобы Windows завершила свою работу, то поместите свой код в обработчик события OnCloseQuery, хотя CanClose=False не сделает, того, что сделано здесь.

OnDestroy

После того, как метод OnClose будет обработан и форма будет закрыта, то будет вызвано событие OnDestroy. В OnCreate обычно делаются действия, противоположные тем, которые проделывались в OnCreate, то есть уничтожение созданных объектов и освобождение выделенной памяти.

Естевственно, что когда главная форма проекта будет закрыто, то приложение будет завершено.
1
5 / 5 / 3
Регистрация: 02.11.2010
Сообщений: 140
01.12.2010, 13:28  [ТС]
не получается серовно
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
01.12.2010, 13:32
tager3, ну тогда чем я могу вам помочь? кинте проект и скажыте что надо точно сделать и я ето вам вкручю... ну или пробуйте дальше)
0
5 / 5 / 3
Регистрация: 02.11.2010
Сообщений: 140
01.12.2010, 14:08  [ТС]
вот исходник, там форма 2 - это авторизация а форма 1 - главная форма, так вот нужно чтобы при вводе правильного пароля форма 2 закрывалась а форма один открывалась, при нажатии на крестик в форме 2 , форма 2 и форма один обе закрывались, и тоже самое если пароль не верный, вобще сделать по человечески, а то получается авторизацию просто на крестик нажимаешь, и появляется главная форма.... не порядок
Вложения
Тип файла: rar Новая папка (2).rar (3.7 Кб, 116 просмотров)
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
01.12.2010, 14:44
воть посмотри на такой вариант
Вложения
Тип файла: zip np.zip (16.7 Кб, 268 просмотров)
1
5 / 5 / 3
Регистрация: 02.11.2010
Сообщений: 140
01.12.2010, 14:51  [ТС]
да спасибо
0
5 / 5 / 3
Регистрация: 02.11.2010
Сообщений: 140
01.12.2010, 22:16  [ТС]
ппц блин, все сделал также , а появляется главная форма сразу, не могу понять в чем проблема, е мое, все перекопал уже
Вложения
Тип файла: rar rsa_isx.rar (396.5 Кб, 64 просмотров)
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
02.12.2010, 10:52
открой unit Project16 он у тебя выглядит так:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program Project16;
 
uses
  Forms,
  Unit16 in 'Unit16.pas' {Form16},
  Unit1 in 'Unit1.pas' {Form1};
 
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TForm16, Form16);
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
сделай его таким:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
program Project16;
 
uses
  Forms,
  Unit16 in 'Unit16.pas' {Form16},
  Unit1 in 'Unit1.pas' {Form1};
 
{$R *.res}
 
begin
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.CreateForm(TForm16, Form16);
  Application.Run;
end.
должно быть тебе счастье
0
Заблокирован
02.12.2010, 10:54
у меня делфи не работает что делать?
0
 Аватар для mstislava
0 / 0 / 0
Регистрация: 21.02.2011
Сообщений: 9
25.02.2011, 14:38
господа! подскажите пожалуйста как закрыть форму (модальную), чтобы при следующем обращении к ней поля снова были пустыми (если пишу Close, то при следующем вызове формы во всяких edit'ах и listbox'ах остаются данные с предыдущего вызова). формы нужны для ввода данных, потому периодически вызываются и закрываются..

Добавлено через 1 час 44 минуты
вопрос снят)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.02.2011, 14:38
Помогаю со студенческими работами здесь

Закрытие формы
столкнулся с проблемой закрытия формы по кнопке: procedure TForm5.Button1Click(Sender: TObject); begin Fk:=true; Memory:=BM;...

закрытие формы
такое дело надо при открытии формы быстро проверить в реестре кое что и если оно есть, то закрыть текущую форму и открыть другую, с...

Закрытие формы
Как сделать так, чтобы при закрытии дочерней формы через SystemMenu (короче, через крестик), закрывалась и скрытая главная форма...

Закрытие формы
Привет! У меня есть программа, у которой есть две формы. В первой форме есть кнопка, при нажатии на которую скрывается первая форма (с...

Закрытие 2-й формы
у меня есть основная форма (form1), и Form2, которая создается динамически при помощи кода: procedure TForm1.FormCreate(Sender: TObject);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru