Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Form.Close


Страницы:   1 2

ZX48 ©   (2006-08-14 17:39:00) 

GjПомите плиз. Не могу закрыть форму. В коде Form4.close, но не выполняется. В чем может быть проблема?


ZX48   (2006-08-14 18:05:00) [21]

>>И это тоже в сторону. Вынеси работу с ini в отдельный файл, грузи его ДО создания формы.

Т.е. создать отдельный модуль и потом из него вызывать основную форму?


tesseract   (2006-08-14 18:02:00) [22]


> if exit=1 then form4.Close;....(там ничего информативного
> далее нет)


так делать нельзя, и р,и в OnShow тоже.


> form4.iniconnect(form4) ;

а работать с создающимся объектом не вежливо, у тебя MessageDlg вообще показывается?

И это тоже в сторону. Вынеси работу с ini в отдельный файл, грузи его ДО создания формы.


ZX48   (2006-08-14 18:00:00) [23]

2 tesseract:Это все отрабатывается. Закрытие не работает...


tesseract   (2006-08-14 17:58:00) [24]


> if (FileExists(fn + '\base_cfg.cfg') = false) then


if not FileExists(fn + '\base_cfg.cfg')  then


> if (MessageDlg(Файл недоступен',mtConfirmation, [mbYes,
> mbNo], 0) = mrYes) then

>

А если так

if (MessageDlg(Файл недоступен',mtConfirmation, [mbYes, mbNo], 0) <> mrNo) then


?


ZX48   (2006-08-14 17:56:00) [25]

Извините, то что выше из более раннего pas. Приведу то что сейчас есть.Вот более полный код, что бы понятнее было:

procedure TForm4.FormCreate(Sender: TObject);
var  ini:tinifile;
begin
fn:= GetCurrentDir;
form4.iniconnect(form4) ;
ini:=tinifile.Create(fn+'\config.cfg');
try
akt:= strtoint (ini.readstring('print','akt',''));
otchet:= strtoint (ini.readstring('print','otchet',''));
base:= ini.readstring('main','base','');//ini.Free;
except
iniconnect(form4) ;
end;
BaseConnect(Form4);
showmessage (inttostr(exit));
 ini.Free;
if exit=1 then form4.Close;....(там ничего информативного далее нет)

procedure TForm4.BaseConnect(Sender:TObject);
begin
try
if data.ADOConnection1.Connected then data.ADOConnection1.Connected := false;
data.ADOConnection1.ConnectionString:= 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ base +';Persist Security Info=False';
data.Action(form4);
//MessageDlg('Подключение к базе данных '+base+' выполненно успешно!', mtInformation,[mbOk], 0);
except
 if MessageDlg('База данных '+base+' недоступна или поврежден файл конфигурации! Выберите базу данных и сохраните настройки.',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
 begin
 form4.N10Click(form4);
 //BaseConnect(Form4);
 end else
 begin
showmessage ('Программа будет закрыта!') ;
 close;
end;
end;
end;

procedure TForm4.IniConnect(Sender: TObject);
var FileHandle : integer;
begin

if (FileExists(fn + '\config.cfg') = false) then
begin
if (MessageDlg('Файл недоступен',
   mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
begin
FileHandle := FileCreate(fn + '\config.cfg');
FileClose(FileHandle);
form4.N10Click(form4);
form4.NFClick(Form4);
//iniconnect(Form4);
end else
begin
showmessage ('Программа будет закрыта!') ;
 close;
end;
end;
end;


ANB   (2006-08-14 17:54:00) [26]

Есть у меня подозрение, что все это в OnCreate вызывается. Потому и не кусает :)


StriderMan   (2006-08-14 17:52:00) [27]

давай весь модуль формы


ZX48   (2006-08-14 17:50:00) [28]

2 begin...end:
нет ничего


ZX48   (2006-08-14 17:50:00) [29]

да. мессага то вылезает. и по выходу из процедуры я тоже тестовую месагу ставил - тоже показывается. не могу понять почему это? хотя тут же в меню по кнопке закрывается...


begin...end   (2006-08-14 17:50:00) [30]

В обработчике OnClose формы что-нибудь есть?


StriderMan   (2006-08-14 17:48:00) [31]


> showmessage ('Программа будет закрыта!') ;

а до сюда программа вообще доходит?


ZX48   (2006-08-14 17:46:00) [32]

Не работает никак. Даже ставил вместо закрытия переменную, присваивал ей значение в труе, а потом в другой процедуре (из которой идет вызов этой) пробовал по ее значению вызывать close - не работает почему-то.


Джо   (2006-08-14 17:43:00) [33]

Убрать .form4, о результатах доложить :)


ZX48   (2006-08-14 17:41:00) [34]

procedure TForm4.IniConnect(Sender: TObject);
var FileHandle : integer;
begin

if (FileExists(fn + '\base_cfg.cfg') = false) then
begin
if (MessageDlg(Файл недоступен',mtConfirmation, [mbYes, mbNo], 0) = mrYes) then
begin
FileHandle := FileCreate(fn + '\config.cfg');
FileClose(FileHandle);
form4.N10Click(form4);
form4.NFClick(Form4);
//iniconnect(Form4);
end else
begin
showmessage ('Программа будет закрыта!') ;
 form4.close;
end;
end;
end;


tesseract   (2006-08-14 17:39:00) [35]


>  Form.Close


код приведи.


StriderMan   (2006-08-14 17:39:00) [36]

код в студию


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо