![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как не дать форме открыться [D5]
Nikola62 © (2007-09-10 14:31:00)Как поступать в такой ситуации. При создании формы происходит анализ прав на просмотр формы. Как при отсутствии права не показывать форму, а возвращаться в место вызова? Вариант анализировать права до создания формы не предлагать, т.к. форма может вызывыться со многих мест программы.
Nikola62 (2007-09-10 14:56:00) [1]Спасибо всем. Получилось.
Игорь Шевченко (2007-09-10 14:51:00) [2]type
EMyExceptionDontShowForm = class(Exception);
TYourForm = class(TForm)
procedure FormCreate (Sender: TObject);
protected
function HandleCreateException: Boolean; override;
end;
function TYourForm.HandleCreateException: Boolean;
begin
if ExceptObject is EMyExceptionDontShowForm then
Result := false
else
Result := inherited HandleCreateException;
end;
procedure TYourForm.FormCreate (Sender: TObject);
begin
if SomeAssertionFailed then
raise EMyExceptionDontShowForm ('Some assertion failed');
end;
Германн (2007-09-10 14:50:00) [3]deja vu
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1189192349&n=18
{RASkov} (2007-09-10 14:41:00) [4]> Как не дать форме открыться
открыться - подразумевается - создаться, так?
Ну так и не создавай ее если нет прав.
Аааа... у тебя права проверяются на OnCreate, да? - не верно. См [1].
Dib@zol (2007-09-10 14:35:00) [5]Тьфу. Мессагу можно и не задавать, это из одного моего ламерского проекта. там закрытие блокировалось.
Palladin (2007-09-10 14:34:00) [6]что мешает написать процедуру с вызовом формы и в ней до создания проверять права?
Dib@zol (2007-09-10 14:34:00) [7]raise EAbort.Create('Фиг тебе');
Должно помочь.