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

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

Крестик


Defort ©   (2007-02-05 12:38:00) 

Господа, вопрос наверное очень глупый, но все же: какое событие отвечает за нажатия крестика закрытия? Есть конечно событие OnClose но я так понимаю, что оно не для крестика, а вобще для закрытия формы (т.е. для любого Form.Close). Мне нужно конкретно под крестик


evvcom   (2007-02-06 16:55:00) [1]

> [19] iXT ©   (06.02.07 16:49)

А я и не утверждал, что сядет. :) Я давно научен не употреблять "категоричных" слов типа "всегда", "никогда". И в данном случае я употребил "возможно". :)


iXT   (2007-02-06 16:49:00) [2]

Не сядет. Судя по программулине переделывать ему ее уже не дадут. Сл-но будет извращение абы работало.
По теме ищи Commit, RollBack... если access могет


Defort   (2007-02-06 14:40:00) [3]

юмористы


evvcom   (2007-02-06 10:29:00) [4]

> [16] Megabyte ©   (06.02.07 10:12)
> научного тыка?

научного втыка :)
Сейчас на втыкают ему здесь понаучному, и, возможно, тогда он сядет за книги.


Megabyte   (2007-02-06 10:12:00) [5]


> Defort ©  (05.02.07 18:38) [10]

Скажете - читай теорию, но ее у меня нету и мой уровень программинга на делфи не такой большой чтобы читать очень умные книги (я даже sql не знаю)

Кошмар, ну никогда не понимал, как можно работать с БД, не зная SQL...
Что ты бред какой-то пишешь, что мол у тебя мало опыта, чтобы читать книги?! Епта, да по книгам все учатся... Там проще, есть куча примеров, в отличие от многих статей. Или ты все хочешь познать методом научного тыка?


Defort   (2007-02-06 10:07:00) [6]


> Что за СУБД?

MS Access


> Код в студию!

Он очень громоздкий и содержит кучу операций не связанных с сабжем. Думаю смысла нет.


> См. автоинкремент, триггер, генератор и т.д.

Где смотреть?


Алхимик   (2007-02-06 09:58:00) [7]

> для того, чтобы записи в главной таблице был присвоен номер
> для ключевого поля Key делаеются подряб команды Post и Edit

См. автоинкремент, триггер, генератор и т.д.
Что за СУБД?

> а как сделать правильно?

Код в студию!


evvcom   (2007-02-06 09:50:00) [8]

> [8] iXT ©   (05.02.07 15:37)

Мой телепатор это подсказывал уже после прочтения сабжа в общем списке вопросов :)


Defort   (2007-02-05 20:38:00) [9]

2Комбинатор: а как сделать правильно?


Комбинатор   (2007-02-05 18:56:00) [10]


>  Скорее всего все очень неправильно

ты прав


Defort   (2007-02-05 18:38:00) [11]

У меня там довольно сложная система. У меня открывается окошко добавления новой записи в базу. Скорее всего все очень неправильно, поскольку я делал все методом проб и ошибок.

Открывается окно добавления новой записи в табоицу (таблица Договоров). После этого (в режиме редактирования главной таблице) по нажатию кнопки открывается новое окошко для связанной таблицы (график платежей). Перед открытием этого окна для того, чтобы записи в главной таблице был присвоен номер для ключевого поля Key делаеются подряб команды Post и Edit (то есть снова открывается для редактирования). Далее создается график платежей, окошко закрывается. И вот после этого если нажать кнопку Отмена (команда Cancel) - она работает неправильно, т.к. запись то уже запостена.Вот я и пытался решить эту проблему, навесив на кнопку отмена кучу проверок типа: была ли нажата кнопка графика платежей (если нажата - то там была команда Post и отмена уже заключается в удалении этой записи), а если не нажата, то просто Cancel.

В итоге все равно все блин не работает, при попытке сделать Post для главной таблице вылазит ошибка мол не найдена запись для обновления (соседняя тема)......

В общем не знаю что делать. Скажете - читай теорию, но ее у меня нету и мой уровень программинга на делфи не такой большой чтобы читать очень умные книги (я даже sql не знаю)


RASkov   (2007-02-05 15:44:00) [12]

> [5] Defort ©   (05.02.07 13:50)

А что у тебя за "функции кнопки "Отмена""
Лучше кнопку "Отмена" сделай также как и OnClose, а все необходимое на кнопку "Ок" Т.е. на OnClose ничего, на кнопку "Отмена" - Close; и только на кнопку "Ок" все нужное.....

Или

procedure TForm2.ButtonOkClick(Sender: TObject);
begin
.....
 ModalResult:=mrOk;
end;

procedure TForm2.ButtonNoClick(Sender: TObject);
begin
.....
 ModalResult:=mrNo;
end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 case ModalResult of
  mrOk: ShowMessage('Ok');
  mrNo: ShowMessage('No');
  mrCancel: ShowMessage('Cancel');
 end;
end;


iXT   (2007-02-05 15:37:00) [13]

Мой телепатор подсказывает что "крестик" тут вообще окажется не причем


Ega23   (2007-02-05 15:33:00) [14]

значение ModalResult проверяй.


iXT   (2007-02-05 15:29:00) [15]

Чего-чего?????
OnClose - событие возникающее при закрытии формы. Чего туды положешь, то выполнится при закрытии формы.
З.Ы. Сформулируй вопрос нормально!!!


Defort   (2007-02-05 13:50:00) [16]

Нет, а вообще событие OnClose для любого закрытия формы или только под "крестик". У меня окошко, где есть кнопочки ОК и Отмена. Вот крестик должен выполнять функции кнопки "Отмена", но я боюсь что если повесить эту функцию на OnClose, то при нажатии кнопки ОК (там форма тоже закрывается) у меня будут выполнятся действия отмены...


Zeqfreed   (2007-02-05 13:10:00) [17]

Конкретно крестик — WM_NCHITTEST, WM_NCBUTTONDOWN, WM_NCBUTTONUP.


umbra   (2007-02-05 12:48:00) [18]

"конкретно под крестик" надо обрабатывать сообщение WM_SYSCOMMAND с командой SC_CLOSE


Ega23   (2007-02-05 12:46:00) [19]

А если не крестик, а Alt+F4? Тогда что?


Elen   (2007-02-05 12:45:00) [20]


>  Мне нужно конкретно под крестик

Чего так? Чем OnClose OnCloseQuery не катит?


Наверх

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