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

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

Обработка ошибок в открывающейся форме [D7, XP]


Страницы:   1 2 3 4

Laguna ©   (2011-10-05 10:28:00) 

Из главной формы открывается другая, в которой открываются таблицы. Во время открытия могут возникнуть ошибки(отсутствует файл, отсутствует индекс и т.д). Как правильно не допустить конечное открытие формы, если на этапе onCreate возникли ошибки. Из главной формы вход оформлен вот так :

 Screen.Cursor := crHourGlass;
 M_Frm := TM_Frm.Create(Application);
 M_Frm.Lab1.Caption := 'Выполняется подготовка, ожидайте...';
 M_Frm.Show;
 M_Frm.Update;
 S_Frm := TS_Frm.Create(Application);
 S_Frm.ShowModal;
 M_Frm.Hide;
 M_Frm.Free;
 Screen.Cursor := crDefault;
 S_Frm.CLose;
 S_Frm.Free;



procedure TS_Frm.FormCreate(Sender: TObject);
Var
 ErrorString : String;
begin
 try
   DM1.T1Tbl.Open;
   DM1.T2Tbl.Open;
   DM1.T3Tbl.Open;
   DM1.T4Tbl.Open;
   DM1.T5Tbl.Open;
 except
   on E: EDatabaseError do
     application.messagebox( pchar(E.message), 'Native Database Error', 0 );
 end;
end;


Ega23   (2011-10-06 15:22:00) [21]


> ...в том, что форма будет уничтожена автоматически.


Это философский спор.


Игорь Шевченко   (2011-10-06 15:20:00) [22]

MsGuns ©   (06.10.11 14:37) [50]


> Достаточно ?


не вижу противоречий с описанными мной деталями реализации.


> Ну куда уж нам уж выйти замуж :)


Вот и не выходи


Юрий Зотов   (2011-10-06 15:19:00) [23]

Вместо OnCreate  - перекрыть конструктор. И все дела.

>Ega23 ©   (05.10.11 14:14) [19]
> преимущество вызова исключения в конструкторе...

...в том, что форма будет уничтожена автоматически.


И. Павел   (2011-10-06 14:49:00) [24]

> Под "говнокодерами" я подразумевал тех, кто выставляет часовые
> таймауты без веских на то оснований.

Чувствую, не доводилось вам сталкиваться с истинным говнокодом :)


Ega23   (2011-10-06 14:45:00) [25]

И, кстати, я так и не услышал лекции, для чего предназначены ДатаМодули. Очень интересно послушать.


Ega23   (2011-10-06 14:45:00) [26]


> В моем понимании программа предварительно предлагает залогиниться


И чем это противоречит созданию компонента TLoginDialog, размещению его в DataModule и вызов перед созданием главной формы?


MsGuns   (2011-10-06 14:37:00) [27]

>Ega23 ©   (06.10.11 12:55) [48]
>Не, если в твоём понимании все программы, которые перед показом главной формы подключаются к БД и выкачивают оттуда некую служебную информацию, необходимую для начала работы, относятся к поделкам говнокодеров, то мне тогда искренне жаль твоих клиентов.

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

>Игорь Шевченко ©   (06.10.11 13:14) [49]
>прошу озвучить точку зрения пользователя

Отсутствие тормозов (в т.ч. и особенно при запуске приложения),
Удобный интерфейс (без излишеств, но со всем необходимым)
Отсутстствие непредвиденных (не описанных в руководстве) глюков и граблей
Понятное интуитивно поведение программы, включая сообщения об ошибках.

Достаточно ?

>Не представляй, у тебя плохо получается, не твое это

Ну куда уж нам уж выйти замуж :)


Игорь Шевченко   (2011-10-06 13:14:00) [28]


> А теперь пожалуйста в деталях чем отличается первое от второго
> с т.зр. пользователя ?


прошу озвучить точку зрения пользователя


> Представил что бы было если бы PL/SQL Developer или Toad
> работал бы по принципу ИШ-ТС


Не представляй, у тебя плохо получается, не твое это


Ega23   (2011-10-06 12:55:00) [29]


> MsGuns ©   (06.10.11 12:47) [47]
>
> Представил что бы было если бы PL/SQL Developer или Toad
> работал бы по принципу ИШ-ТС с учетом того


А что тут такого?
Не, если в твоём понимании все программы, которые перед показом главной формы подключаются к БД и выкачивают оттуда некую служебную информацию, необходимую для начала работы, относятся к поделкам говнокодеров, то мне тогда искренне жаль твоих клиентов.


MsGuns   (2011-10-06 12:47:00) [30]

Представил что бы было если бы PL/SQL Developer или Toad работал бы по принципу ИШ-ТС с учетом того, что у нас периодицки перебои с Киевом по сетке (базы там). Бррррр....


MsGuns   (2011-10-06 12:43:00) [31]

Я не знаю почему топикстартер озадачился испечь блины в атомном реакторе, но чисто на практике знаю какую реакцию вызывает у простого юзверя программа, которая после запуска молча (или с белым прямоугольником, иногда с вкраплениями текста и цвета) зависает на несколько минут, а бывает и часов если говнокодер выставил пузатый таймаут. Ответ простой - резкое желание переместить ярлычок в отхожее место.
Не знаю что там спрашивается на собеседованиях по поводу открытия форм стартующих приложений и честно говоря не интересно. Ибо это в конце концов стандарт софт-конторы, который приходящий усваивает в секунду и в дальнейшем тупо кописпастит (ибо стандарт).


MsGuns   (2011-10-06 12:36:00) [32]

>Игорь Шевченко ©   (05.10.11 20:20) [42]
>формы, выдающие исключение в OnCreate и не появляющиеся после этого >на экране наблюдались. Заметьте разницу - не отменяющие показ, а >выдающие исключение

А теперь пожалуйста в деталях чем отличается первое от второго с т.зр. пользователя ?
Или маэстро пишут ПО исключительно для маэстро ?


Германн   (2011-10-06 01:08:00) [33]

Удалено модератором


_Юрий   (2011-10-05 20:21:00) [34]


> Игорь Шевченко ©   (05.10.11 19:57) [35]


> Между прочим, это один из моих вопросов кандидатам на собеседовании
> :)


Ну дык как по твоему правильно не допустить этого самого открытия?


Игорь Шевченко   (2011-10-05 20:20:00) [35]


> А формы, отменяющие показ в OnCreate, стало быть, наблюдались?


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


DiamondShark   (2011-10-05 20:19:00) [36]


> До сих пор указанного соответствия не наблюдалось

А формы, отменяющие показ в OnCreate, стало быть, наблюдались?


Игорь Шевченко   (2011-10-05 20:16:00) [37]


> Ответивший на этот вопрос будет хранить данные в TreeView
> и всю бизнес-логику писать внутри Button1Click


До сих пор указанного соответствия не наблюдалось


DiamondShark   (2011-10-05 20:15:00) [38]


> OW ©   (05.10.11 17:39) [30]
> ну а чем плоховсе открыть, если все нормально, то и создать
> формуесли нет - все закрыть "взад" и поругаться

Это не по дельфийски.


DiamondShark   (2011-10-05 20:12:00) [39]


> Между прочим, это один из моих вопросов кандидатам на собеседовании :)

Если задумался, и собрался отвечать -- гнать поганой метлой.
Ответивший на этот вопрос будет хранить данные в TreeView и всю бизнес-логику писать внутри Button1Click. Нафиг никому не нужен такой кандидат.


Ega23   (2011-10-05 20:09:00) [40]


> MsGuns ©   (05.10.11 18:03) [33]
>
> Датамодуль нужен совсем для других целей


Ну давай уже тогда, описывай, для чего он нужен.


Страницы:   1 2 3 4

Наверх

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