![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Вот функция, которая вызывает диалог, на котором заполняются настройки ConnectionString для ADOConnection:
Код:
procedure TForm1.FormCreate(Sender: TObject); begin with TFormConnectionDialog.Create(Self) do try if Execute(Connection) then FillDataBases(SidePanel.Items.AddChild(nil, 'Сервер')) else Self.Close; finally Free; end; end; 1) В случае успешного Execute должна вызываться процедура заполнения SidePanel деревом сервера. Проблема в методе Execute: Код:
function TFormConnectionDialog.Execute(Connection: TADOConnection): boolean; begin Result := ShowModal = mrOK; if Result then begin Connection.ConnectionString := 'Driver=MySQL ODBC 5.2 ANSI Driver;' + edServer.Text + edPort.Text + edDataBase.Text + edUser.Text + edPwd.Text; if not Connection.Connected then raise Exception.Create('Неправильные настройки соединения.'); end; end; 1) Подразумевается, что если Connect прошёл, то execute возвращает true и закрывает форму-диалог, что влечёт за собой заполнение SidePanel. 2) если не прошёл, то выводит сообщение об ошибке и ждёт исправлений. 3) В случае mrCancel форма-диалог должна закрыться, вместе с Главной формой. Я запутался в том, где что закрывать, где-что присваивать. P.s сюда есть смысл заглядывать? Код:
ConnectionConnectComplete(Connection: TADOConnection; const Error: Error; var EventStatus: TEventStatus); Последний раз редактировалось Uniq!, 20.10.2013 в 00:19. |
#2
|
||||
|
||||
![]() Лучше вызывать подключение после открытия всех окошек.
Код:
modalresult := (showmodal=mrok) and (execute(blabla)) — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
![]() Поскольку прошлые задачи мы решали архитектурно, эту тоже можно попробовать.
В общем случае есть два способа организации входа в приложение:
Я обычно целиком и полностью за второй способ, поскольку при нем не нужно отправлять SMS легче организовать многократный вход в базу или работу с несколькими базами. Кроме того, работоспособность пустого приложения предъявляет дополнительные требования к надежности кода: нигде ничего не должно просто так нажиматься при отсутствии подключения к базе, а при нажатии не падать (выдавать вразумительные сообщения об ошибках, если нужно). Не стоит путать форумы с богадельнями. © Bargest |