ModalResult Delphi

26/09/2015

0

ModalResult só retorna 0 e quando entra no IF não da certo.

//procedure TfrmPesProdOtica.FormKeyPress(Sender: TObject; var Key: Char);
begin
GradePesquisa.SetFocus;
if Key = #13 then
begin
ModalResult := mrOk;
Close;
end;

if Key = #27 then
begin
ModalResult := mrCancel;
Close;
end;
end;

//frmPesProdOtica := TfrmPesProdOtica.Create(Self);
frmPesProdOtica.Name := 'frmPesProdOtica';
if frmPesProdOtica.ShowModal = mrOk then
txtProduto_LD.Text := FormatFloat('0000000000000', oCad05.FieldByName('COD_PROD').AsInteger) + ' - ' + oCad05.FieldByName('DES_PROD').AsString
else
begin
txtCodGrupo_LD.Clear;
txtCodGrupo_LD.SetFocus;
end;
Matheus Gomes

Matheus Gomes

Responder

Post mais votado

11/11/2015

É porque o Close seta o modalResult pra zero, inverta as instruções pra ver.
Primeiro dê o close e depois chame o moralResult := mrOk;

Gabriel Baltazar

Gabriel Baltazar
Responder

Mais Posts

10/11/2015

Rafael Bosco

Tente trocar o resultado do ModalResult de mrOK para 1, para fazer um teste se passando em integer, ele tem alguma mudança, abaixo a listagem dos códigos por Modal:

  mrNone     = 0;
  mrOk       = 1;
  mrCancel   = 2;
  mrAbort    = 3;
  mrRetry    = 4;
  mrIgnore   = 5;
  mrYes      = 6;
  mrNo       = 7;
  mrClose    = 8;
  mrHelp     = 9;
  mrTryAgain = 10;
  mrContinue = 11;
  mrAll      = 12;
  mrNoToAll  = 13;
  mrYesToAll = 14;

Responder

27/10/2022

João Eduardo

É porque o Close seta o modalResult pra zero, inverta as instruções pra ver.
Primeiro dê o close e depois chame o moralResult := mrOk;




Me ajudou, estava com um problema semelhante, ModalResult estava retornando zero por conta do Close, Valeu.
Responder

27/12/2022

Arthur Heinrich

Quando fazemos um form que será executado com ShowModal, podemos setar a propriedade ModalResult dos botões, com o valor que queremos que seja retornado.

Daí, quando um destes botões é pressionado, o valor setado é retornado pelo ShowModal.
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar