Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2012, 11:31   #11
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

а если на форме 2 стоит
CanClose := False;
пользователь всё сделал правильно, прошел на третью форму, как по нажатии кнопки на 3 форме, закрыть и вторую тоже? она же не закрывается
m1zantrop вне форума Ответить с цитированием
Старый 09.06.2012, 13:33   #12
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Ну, можно, к примеру, завести глобальную переменную, видимую во всех юнитах, и в зависимости от каких-либо условий устанавливать ей соответствующее значение. А потом уже - CanClose := ЭтаПеременная. Ну, это один из методов.

А вообще, не совсем правильно запрещать пользователю закрывать окно - это будет бесить всех и каждого. Вместо требования во чтобы то ни стало ввести имя, спроси у юзера что-то вроде "Уважаемый, ты имя не ввел, сохранить запись не получится. Хочешь все-таки ввести имя?". Если юзер отвечает "Да" - возвращаем его к вводу данных, "Нет" - закрываем окно без сохранения записи.
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Старый 09.06.2012, 13:44   #13
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

Цитата:
не совсем правильно запрещать пользователю закрывать окно
я бы даже сказал, совсем не правильно ) Обычно, такие программы оканчивают свою незатейливую жизнь под кнопкой [End Proccess] из Task Manager.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 09.06.2012, 14:27   #14
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

реч идёт о праворливых школьниках, эта запись просто обязана попасть в бд
m1zantrop вне форума Ответить с цитированием
Старый 11.06.2012, 07:20   #15
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

Цитата:
procedure TForm6.sButton1Click(Sender: TObject);
begin
if sEdit1.Text='' then
Application.MessageBox('Ïîëå îáÿçàòåëüíî äëÿ çàïîëíåíèÿ!', 'Âíèìàíèå!', MB_ICONINFORMATION or MB_OK);
else
exit;
ts.Add(sEdit1.text);
ts.Add(sEdit2.text);
ts.Add('__________');
begin
sEdit9.Text:=sEdit1.Text;
end;
end;
что не так?

если едит больше чем ничего то всё что после эксыта должно выполнятся
m1zantrop вне форума Ответить с цитированием
Старый 11.06.2012, 07:27   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
если едит больше чем ничего
То все что после "эксыта" забьет на выполнение большой гвоздь.
Убирай Exit отсюда.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2012, 07:35   #17
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
То все что после "эксыта" забьет на выполнение большой гвоздь.
Убирай Exit отсюда.
если его убрать то он всё равно несмотря на то что поле пусто, выполняет действия
m1zantrop вне форума Ответить с цитированием
Старый 11.06.2012, 07:40   #18
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не удивительно. Все что при Else нужно выполнять заключи в begin...end
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2012, 07:56   #19
m1zantrop
Форумчанин
 
Регистрация: 11.04.2012
Сообщений: 103
По умолчанию

спасибо, помогло
m1zantrop вне форума Ответить с цитированием
Старый 11.06.2012, 08:00   #20
ych_del
Форумчанин
 
Аватар для ych_del
 
Регистрация: 06.02.2011
Сообщений: 149
По умолчанию

Цитата:
что не так?
Во-первых - а оно у тебя компилится вообще?

Код:
procedure TForm6.sButton1Click(Sender: TObject);
begin
   if sEdit1.Text='' then
      Application.MessageBox('Ïîëå îáÿçàòåëüíî äëÿ çàïîëíåíèÿ!', 'Âíèìàíèå!', MB_ICONINFORMATION or MB_OK);
   else
      exit;
   ts.Add(sEdit1.text);
   ts.Add(sEdit2.text);
   ts.Add('__________');
   begin
      sEdit9.Text:=sEdit1.Text;
   end;
end;
Во-вторых - зачем там begin .. end в конце процедуры?

В-третьих (опять же - просто отвлеченно) - не следует "орать" на пользователя (восклицательные знаки в мессагбоксе), даже если этот пользователь - школьник. Это раздражает всех и каждого. См. Google -> usability
Профессиональный конвертор галлюцинаций заказчика в алгоритмическую структуру.
ych_del вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отменить сортировку в NextGrid George2010 Компоненты Delphi 3 09.01.2011 16:34
Можно ли отменить последние действие? casio23 Общие вопросы Delphi 4 29.12.2010 19:16
Отменить предыдущее действие на канве rubik Общие вопросы Delphi 4 19.04.2010 22:52
Как отменить поток RIO Общие вопросы Delphi 11 12.10.2009 00:29
Действие для кнопки segail Microsoft Office Excel 7 25.07.2009 19:04