Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как не дать форме открыться [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('Фиг тебе');
Должно помочь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо