Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
ВнизКак закрыть форму из OnShow Найти похожие ветки
← →
AlexeyT © (2006-02-28 12:15) [0]Почему закрытие формы (Close) не работает из события OnShow?:
procedure TForm2.FormShow(Sender: TObject);
begin
ShowMessage("Form opened");
Close; //не закрывает форму!
end;
Что я хочу: вызвать форму, чтобы она сама отработала в модальном режиме и после работы закрылась. Правильно ли делать Close прямо из OnShow, или можно это сделать как-то по-другому? Как?
← →
umbra © (2006-02-28 12:22) [1]лучше ее показывать и скрывать откуда-то извне.
← →
AlexeyT © (2006-02-28 12:34) [2]2umbra
Ты имеешь в виду, делать Show/Hide, вместо ShowModal?
Нет, мне нужно форму показывать именно в _модальном_ режиме, Show не подходит.
← →
tesseract © (2006-02-28 12:54) [3]
> Правильно ли делать Close прямо из OnShow, или можно это
> сделать как-то по-другому? Как?
Close в OnShow работать и не должен.
Вызыви форму немодально, отработай, потом вызови функцию вызвавшей формы которая её закроет.
Или брось на форму таймер и закрывай из него.
← →
AlexeyT © (2006-02-28 13:00) [4]2tesseract
Вызвать форму немодально я могу, но тогда юзер сможет переключаться на основную форму в процессе работы этой, что нежелательно. Желательно вызывать модально.
С таймером - хорошая мысль...
← →
clickmaker © (2006-02-28 13:59) [5]
> AlexeyT © (28.02.06 12:15)
class function TForm1.Execute;
begin
with TForm1.Create(Application) do begin
try
if Инициализация успешно then
Result := (ShowModal = mrOk)
else
Result := false;
finally
Free;
end;
end;
end;
← →
Desdechado © (2006-02-28 14:00) [6]а смысл создавать форму, чтоб она отработала без участия пользователя и закрылась?
может, проще написать функцию без визуальных эффектов?
← →
Гошик Кувшинов (2006-02-28 14:48) [7]потому что по умолчанию close не закрывает, а только прячет форму т.е. делает ей hide (а она в этот момент и так невидима), а потом дельфя после onshow снова делает ей show и она показывается. если надо чтобы close закрыла форму из onshow, перекрой onclose и устанавливай там action := cafree
← →
tesseract © (2006-02-28 17:18) [8]
> С таймером - хорошая мысль...
Сам так и делаю.
← →
AlexeyT © (2006-02-28 22:17) [9]В общем, сделал старт/стоп процесса по таймеру. Вроде все работает, спасибо.
← →
Anatoly Podgoretsky © (2006-02-28 22:56) [10]AlexeyT © (28.02.06 12:34) [2]
Обманываешь ты нас
Нет, мне нужно форму показывать именно в _модальном_ режиме
← →
AlexeyT © (2006-03-01 09:47) [11]Anatoly Podgoretsky
Нет, не обманываю.
Форма показывается в _модальном_ режиме, через ShowModal, на форме таймер, который запускает выполнение моей процедуры и по окончании вызывается Close. Все работает, что не так?
← →
Ega23 © (2006-03-01 09:56) [12]
> Все работает, что не так?
Зачем форма-то нужна? Модальная? Напиши функцию и выполняй из главной формы, в чём проблема-то???
← →
Mikhail V © (2006-03-01 09:56) [13]>Все работает, что не так?
Все не так :)
← →
AlexeyT © (2006-03-01 10:52) [14]
> Зачем форма-то нужна? Модальная?
Затем:
- юзеру нужна возможность прервать кнопкой процесс,
- возможность видеть прогресс-бар.
← →
clickmaker © (2006-03-01 11:05) [15]
> Затем:
> - юзеру нужна возможность прервать кнопкой процесс,
> - возможность видеть прогресс-бар.
и где здесь нужно закрытие из OnShow?
← →
msguns © (2006-03-01 11:06) [16]Похоже, что форма "сплэшная".
Если так, то почему бы не сделать ее показ по обычному стандарту (как у Тексейры, например)
← →
AlexeyT © (2006-03-01 14:04) [17]
> и где здесь нужно закрытие из OnShow?
Я уже сказал: сначала было сделано как запуск/закрытие из OnShow, и это не работало. Вопрос был: как сделать лучше. Подсказали.
> Похоже, что форма "сплэшная".
> Если так, то почему бы не сделать ее показ по обычному стандарту
> (как у Тексейры, например)
Не в курсе, что значит "по обычному стандарту"?
← →
msguns © (2006-03-01 14:40) [18]>AlexeyT © (01.03.06 14:04) [17]
>Не в курсе, что значит "по обычному стандарту"?
Все делается в файле проекта
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.03.19;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.013 c