![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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)) |
|
#3
|
||||
|
||||
|
Поскольку прошлые задачи мы решали архитектурно, эту тоже можно попробовать.
В общем случае есть два способа организации входа в приложение:
Я обычно целиком и полностью за второй способ, поскольку при нем не нужно отправлять SMS легче организовать многократный вход в базу или работу с несколькими базами. Кроме того, работоспособность пустого приложения предъявляет дополнительные требования к надежности кода: нигде ничего не должно просто так нажиматься при отсутствии подключения к базе, а при нажатии не падать (выдавать вразумительные сообщения об ошибках, если нужно). |