![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процесс не выгружается [D7, Win2k]
Belkova © (2005-06-30 20:14:00)Мастера Delphi! Посоветуйте, пожалуйста. Процесс при закрытии главной формы не выгружается. В диспечере задач смотрю: в приложениях ничего нет, а в процессах остается. Что делать?
Belkova (2005-07-01 09:44:00) [21]СУБД - InterBase
FDM модуль данных, где все Query, dataSet и пр.
fdir форма, на которой расположен прайс и вызываются все остальные формы, которые выписывают документы и прочии торговые операции. Создаются все формы в проекте
Application.Initialize;
Application.CreateForm(TFSYS, FSYS);
Application.CreateForm(TFLogin, FLogin);
и т.д.
Digitman (2005-07-01 09:34:00) [22]СУБД - InterBase ?
что такое fDM, fDir ? где , как, когда создаются , что в них творится ?
Belkova (2005-07-01 09:22:00) [23]На главной форме есть меню, в котором вызов диалога для пароля, и выход из приложения.
Flogin.Show
и
FDM.DBAlfa.Connected:=False;
fSYS.Close;
В форме Flogin Есть поле для ввода пароля и юзера
и кнопочка Ok, на которую
ConnectToIniFile;
fDM.DBAlfa.Params.Values['Password']:=EdPassword.text;
fDM.DBAlfa.Params.Values['user_name']:=EDUserName.Text;
try
fDM.DBAlfa.Connected:=True ;
FLogin.Close;
FDir.Show
except
MessageDlg('Неправильный пароль',mtError,[mbOk],0);
FDM.DBAlfa.Connected:=False;
end;
procedure TFLogin.ConnectToIniFile;
var Cfg:TIniFile; S_Temp:String;
begin
if FDM.DBAlfa.Connected then FDM.DBAlfa.Connected:=False;
Cfg:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'connect.ini');
S_Temp:=Cfg.ReadString('CONFIG','Server','localhost');
if S_Temp='localhost' then
begin
fDM.DBAlfa.DatabaseName:=Cfg.ReadString('CONFIG','Path','');
end else
begin
fDM.DBAlfa.DatabaseName:=Cfg.ReadString('CONFIG','Server','')+':'+Cfg.ReadString('CONFIG','Path','');
end;
Cfg.Free;
end;
Digitman (2005-07-01 09:09:00) [24]
> Belkova © (01.07.05 09:07) [11]
приводи код
Belkova (2005-07-01 09:07:00) [25]Вообще-то приложение работает с БД. Главная форма вызывает форму, которая производит соединение с БД. (Там заводится пароль и Юзер).
Digitman (2005-07-01 08:53:00) [26]
> Belkova
что у тебя вообще в приложении делается-то ?
в угадайку играть будем ?
Belkova (2005-07-01 08:48:00) [27]И еще момент, это происходит не на всех компьютерах. На ноутбуке, на котором программа пишется, все нормально выгружается. Когда копирую на другие компьютеры, такое происходит.
Belkova (2005-07-01 08:41:00) [28]TForm
Просто Джо (2005-07-01 03:46:00) [29]
> [3] Belkova © (30.06.05 20:34)
А как называется класс главной формы?
Юрий Зотов (2005-07-01 03:13:00) [30]Чудес не бывает - значит, что-то где-то Вы все же перекрыли.
Belkova (2005-06-30 21:39:00) [31]Не выгружается.
Юрий Зотов (2005-06-30 21:26:00) [32]Попробуйте поставить CloseHandle(Rez) послеend:
Rez := CreateFileMapping(...);
if GetLastError <> ERROR_ALREADY_EXISTS then
begin
...
end;
CloseHandle(Rez);
Belkova (2005-06-30 20:34:00) [33]В файле проекта есть код для того чтобы не запускалась копия программы
var Rez:THandle;
begin
Rez:=CreateFileMapping(HWND($FFFFFFFF),nil,PAGE_READWRITE,0,1024,'PrjAlfa.exe'); //èìÿ ôàéëà
if (GetLastErrorERROR_ALREADY_EXISTS) then
begin
Application.Initialize;
Application.CreateForm(TFSYS, FSYS);
Application.CreateForm(TFLogin, FLogin);
{Создание форм}
Application.Run;
CloseHandle(Rez);
end
А главная форма просто вызывается Close, в событии OnClose ничего не прописано.
Belkova (2005-06-30 20:29:00) [34]Таких обработчиков нет.
Юрий Зотов (2005-06-30 20:19:00) [35]Есть ли обработчики, срабатывающие при закрытии формы или приложения? Если да, покажите их код.