Вот функция, которая вызывает диалог, на котором заполняются настройки 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);