powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обязательные для ввода поля
8 сообщений из 8, страница 1 из 1
Обязательные для ввода поля
    #32182632
Gennady К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, кто знает...

Сделал форму для редактирования записи
Как сделать так, чтобы, если некоторое поле не введено
то окно не закрывалось (а то возникает ошибка выполнения),
а к примеру выводило сообщение об ошибке или еще что?

Геннадий
...
Рейтинг: 0 / 0
Обязательные для ввода поля
    #32182654
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
try...exception
...
Рейтинг: 0 / 0
Обязательные для ввода поля
    #32182659
Gennady К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извините, непонял. (Я недавно изучаю Delphi)
Если в форме просмотра я вызываю другую - fm_Edit_pf_batch
..DM.qu_pf_batch.Append;
..if fm_Edit_pf_batch.ShowModal = mrOk then
....begin
.....DM.qu_pf_batch.Post;
.....DM.qu_pf_batch.UpdateBatch;
....end
..else
.....DM.qu_pf_batch.Cancel;
А в форме fm_Edit_pf_batch на кнопке Ok установлено ModalResult mrOK
То куда поставить try...exception???

Если можно вставьте хоть маленький примерчик....
...
Рейтинг: 0 / 0
Обязательные для ввода поля
    #32182676
Фотография JibSkeart
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
try...exception
В Хелпе понятно описано ,

DM.qu_pf_batch.Append;
if fm_Edit_pf_batch.ShowModal = mrOk then
begin
try
begin
DM.qu_pf_batch.Post;
DM.qu_pf_batch.UpdateBatch;
exception (...) (сорри непомню как в делфях)
do ....
end
end
else
DM.qu_pf_batch.Cancel;
что то в таком духе ...

но если ты используешь
TEdit-ы то лутьше их сначала преред
закрытем фомы проверять на "пустоту"
...
Рейтинг: 0 / 0
Обязательные для ввода поля
    #32182686
lastwarior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не, похоже он не try ... except хочет.

Если Table1 - это твой Dataset, и форма редатирования записи Form1 выводится модально, то:


procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var
I: Integer;
S: String;
begin
S := '';
with Table1 do
begin
for I := 0 to Fields.Count - 1 do
begin
if Fields .Required and (Fields.Value = Null) then
begin
S := S + 'Поле "' + Fields.DisplayLabel +
'" необходимо заполнить !' + #13 + #10;
end;//if
end;//for
end;
if S <> '' then
begin
Application.MessageBox(PChar(S), 'Неполный ввод данных',
MB_OK + MB_ICONWARNING);
ModalResult := mrNone;
end;//if
end;
...
Рейтинг: 0 / 0
Обязательные для ввода поля
    #32182687
laswrarior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опа, как покоцало то !

Внутри for цикла Fields заменить на Fields ессно
...
Рейтинг: 0 / 0
Обязательные для ввода поля
    #32182688
lastwarior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А .... понятно, форум превращает I в квадратных кавычках в в Italic шрифт.
Ну ты понял, что внутри for используются элементы свойства-массива Fields
...
Рейтинг: 0 / 0
Обязательные для ввода поля
    #32182700
Gennady К.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
Я как раз не мог найти как свойство required проверить.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Обязательные для ввода поля
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]