![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обработка ошибок в открывающейся форме [D7, XP]
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]
>
> Датамодуль нужен совсем для других целей
Ну давай уже тогда, описывай, для чего он нужен.