Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Проверка поля на обязательность   Найти похожие ветки 

 
segor   (2004-08-13 09:56) [0]

Надо вместо стандартного сообщения типа "Field ... must have a value" выводить свое сообщение (до Post).

пробовал

  for i := 0 to FieldCount - 1 do
   begin
    Fields[i].OnValidate := doValidate;
   end;

procedure TVocEditClass.doValidate(Sender : TField);
begin
if Sender.Required
 then raise Exception.Create("Не введено значение в поле!!!");
inherited;
end;

ни херась не выводит. все по старому.

HELP!!!


 
DenK_vrtz ©   (2004-08-13 10:02) [1]

Application.OnException
Application.ShowException


 
segor   (2004-08-13 10:07) [2]

в Application Exception"s бывают разные
определить что именнно не введено значение - нельзя


 
DenK_vrtz ©   (2004-08-13 10:11) [3]

>segor  

а если подумать? :)


 
segor   (2004-08-13 10:19) [4]

то можно определить тип исключения
он будет что то вроде databaseerror
а таких может быть скока угодно, не обязательно то что мне нада


 
46_55_41_44 ©   (2004-08-13 10:24) [5]

Слушай я например несколько лет подряд пищу вещи такого типа...
и в чем траблы не понятно..
Ты же ведь сам например даешь ExecSql или Table.Append ..
так вот перед этим и проверяй условия заполнения полей... ведь значения, которые ты будешь давать этим полям юзер наверно должен заполнить во всяких там TEdit, TCurrencyEdit или TCombobox... проверяй просто до ExecSql или Append...
Мне честное слово не понятно в чем проблемы!!


 
46_55_41_44 ©   (2004-08-13 10:27) [6]

Вот пример того как я это делаю...
Пишу функцию

function InitVal: Boolean;
begin
 Result := False;
 if DelRSpace(edt_ID.Text) = "" then
 begin
   MessageBox(Application.Handle, PChar("Please fill ID field!"), PChar("Error"), MB_ICONEXCLAMATION);
   edt_ID.SetFocus;
   Exit;
 end;
 ... //все остальные условия
 Result := True;

end;

...
а затем...

procedure Tform1.btn_saveClick(Sender: TObject);
begin
 if Not InitVal then
   exit;
...
end;

работает нормально... все довольны )))


 
segor   (2004-08-13 10:30) [7]

формы на которых редактируются значения полей - создаются динамически
доступа к компонентам на форме нет.

есть только TDataset, который редактируется и его метод post


 
segor   (2004-08-13 10:34) [8]

сообразил
до вызова post делаем

  for i := 0 to FieldCount - 1 do
   begin
    if Fields[i].Required and (Fields[i].Value = null)
     then
      begin
       Fields[i].FocusControl;
       raise Exception.Create(format("Не введено значение в поле [%s]!!!" ,[Fields[i].FieldName]));
      end;
   end;


 
Lvitaliy   (2004-08-13 10:38) [9]

попробуй BEFORE POST


 
46_55_41_44 ©   (2004-08-13 10:38) [10]

Ну ты же сам создаешь их... то есть прописываешь их создание...
так вот...
Можно так
for i := 0 to form1.ComponentCount -1 do
begin
 if (form1.Components[i] is Tedit) then //например
   if (form1.Components[i] as Tedit).Text = "" then
    ...
end;


 
Ega23 ©   (2004-08-13 10:40) [11]

а если default поставить?  :о)



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
3-1092034532
Mitrofan
2004-08-09 10:55
2004.09.05
Firebird + Interbase на одном компьютере


3-1092116802
Faeton08
2004-08-10 09:46
2004.09.05
Номер по порядку


4-1089879356
Unknown Mystic
2004-07-15 12:15
2004.09.05
Как выполнить другую программу и получить код возврата?


1-1092739496
CAMCOH
2004-08-17 14:44
2004.09.05
Canvas. Помогите разобратся.


1-1092817452
DK
2004-08-18 12:24
2004.09.05
Ограничени размера TMemo





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский