Страница 1 из 1

Предотвратить удаление из TTable?

Добавлено: 12 июл 2004, 14:57
GOS
Как мне кажется нужно что-то написать в обработчике BeforeDelete

Только вот что именно никак не пойму...
надо что-то типа Abort...

Подскажите пожалуйста!

Добавлено: 12 июл 2004, 17:10
Eugie

Код: Выделить всё

procedure TForm1.Table1BeforeDelete(DataSet: TDataSet);
begin
  if MessageDlg('Do you want to delete a record?', mtConfirmation, [mbYes, mbNo, mbCancel], 0) <> mrYes then
    Abort;
end;

Добавлено: 12 июл 2004, 22:34
GOS
Не воспринимает он Abort;

Пишет: [Error] DMUnit.pas(2027): Statement expected, but expression of type 'Integer' found

Что делать?

PS WINXP+Delphi7+TTable+Paradox

Добавлено: 12 июл 2004, 23:42
Eugie
Пишет: [Error] DMUnit.pas(2027): Statement expected, but expression of type 'Integer' found
Странно. А что у тебя до и после Abort?

Добавлено: 13 июл 2004, 11:40
GOS
Там код для реализации бизнес правил, только дело совсем не в нём :(

Я попробовал оставить вообще только

Begin

Abort;

End;

И таже ошибка :(

Добавлено: 13 июл 2004, 13:47
GOS
Моя лень - источник проблемм :)

Надо указать модуляь...

Begin
...
...
...
SysUtils.Abort;
End;

И все проблеммы!

Добавлено: 13 июл 2004, 13:49
GOS
Всмысле модуль(а не модуляь) :) )

Добавлено: 13 июл 2004, 20:03
AiK
GOS, в той же строке, где и твой ник расположен, имеется кнопка с надписью правка. Работает. Проверено.
СЗОТ.

Добавлено: 13 июл 2004, 22:52
Naeel Maqsudov
Моя лень - источник проблемм :)
Я бы сказал, что конфликт идентификаторов источник проблем!
Лучше правильно выбирать идентификаторы (не переопределяя по возможности идентификаторы видимые в данном модуле). И тогда квалификатор (название модуля, в данном случае) указывать не надо и можно лениться еще больше ;)