Recent

Author Topic: Onvalidate com TField  (Read 4937 times)

andrewsoares

  • Newbie
  • Posts: 1
Onvalidate com TField
« on: December 01, 2021, 07:33:37 pm »
Olá, estou começando a ultilizar o lazarus e estou com problema em um código que funciona no delphi. No evento "onshow" do formulario eu chamo uma procedure para funcionar no onvalidate de um determinado campo, porém no lazarus eu sou obrigado a informar um parâmetro que não deveria ser necessário. Segue abaixo o código:

Code: Pascal  [Select][+][-]
  1. procedure TfrmCadVenda.FormShow(Sender: TObject);
  2. begin
  3.   with dmCadVenda do
  4.   Begin
  5.     query.FieldByName('CAMPO').OnValidate := Validate_Item;
  6.   End;
  7. end;

----------------------------------------------------------------------------

Code: Pascal  [Select][+][-]
  1. procedure TdmCadSolicMaterial.Validate_Item(Sender: Integer);
  2. begin
  3.   query.Close();
  4.   query.SQL.Text := 'select DESCRICAO_ITEM' + #13 +
  5.   ' where ITEM.CODIGO_ITEM = ' + IntToStr(Sender);
  6.   try
  7.     qryValidaItem.Open();
  8.   Except
  9.     On E:Exception do
  10.     ShowMessage('Erro Item: ' + E.Message);
  11.   end;
  12.   if qryValidaItem.IsEmpty then
  13.   begin
  14.     MessageDlg('Campo código do item precisa ser preenchido!', mtError, [mbOK],0);
  15.     Abort;
  16.   end
  17.   else
  18.   Begin
  19.     qrySolicItem.FieldByName('DESCITEM_SOL_EST_ITEM').AsString :=
  20.         qryValidaItem.FieldByName('DESCRICAO_ITEM').AsString;
  21.   End;

         
« Last Edit: December 01, 2021, 10:05:04 pm by trev »

Handoko

  • Hero Member
  • *****
  • Posts: 5131
  • My goal: build my own game engine using Lazarus
Re: Onvalidate com TField
« Reply #1 on: December 22, 2021, 05:14:31 am »
Try:

Code: Pascal  [Select][+][-]
  1.     query.FieldByName('CAMPO').OnValidate := @Validate_Item;

Read more (see point #2):
https://www.freepascal.org/docs-html/prog/progse76.html#x290-306000D.5

And (point #1):
https://www.freepascal.org/docs-html/prog/progse72.html#x286-302000D.1
« Last Edit: December 22, 2021, 05:19:20 am by Handoko »

 

TinyPortal © 2005-2018