Duvida em Formulario

12/12/2005

0

  if (F4DesCaracteristicas = nil)  then
    F4DesCaracteristicas := TF4DesCaracteristicas.Create(nil)
  else
    F4DesCaracteristicas.Show;

  showmessage(IntToStr(xcodigo));

  if (xcodigo > 0) then
    DME.CdsDesCaracteristicas.Locate(´coddes´,xcodigo,[])
  else
  begin
    DME.CdsDesCaracteristicas.Close;
    DME.CdsDesCaracteristicas.CommandText := ´SELECT * FROM cedescaracteristicas ORDER BY coddes´;
    DME.CdsDesCaracteristicas.Open;
    DME.CdsDesCaracteristicas.IndexFieldNames := ´coddes´;
    DME.CdsDesCaracteristicas.Last;
  end;


Neste codigo acima, percebi que e executar o evento onShow formulario F4DesCaracteristicas, e logo em seguida é executado o showmessage,
mas quero que o codigo abaixo do showmessage seja executado assim que o form F4DesCaracteristica seja fechado, isso acontecia quando eu estava utilizando showmodal agora com mdiChild esta ocorrendo dessa forma, o que estou fazendo de errado? a Variavel xcodigo vem do form F4DesCaracteristicas. (é um form de consulta onde o usuario pode consultar por nome ou codigo e depois volta para o form que o chamou no caso o form de cadastro.
Abs


Felipeiw

Felipeiw

Responder

Posts

12/12/2005

Gameiro

E se vc colocar o código que está depois do showmessage no onclose do formulario.


Ate mais. :)


Responder

12/12/2005

Marcosrocha

E se vc colocar o código que está depois do showmessage no onclose do formulario.

Também tinha pensado nisso mas estava fazendo um teste pois eu não trabalho com aplicações MDI. Quanto crio um form uso ShowModal e antes de dar um Free eu pego numa variável global o código da pesquisa...
procedure TForm1.Button1Click(Sender: TObject);
var
  Codigo: ShortString;
begin
  Application.CreateForm(TForm2,Form2);
  Form2.ShowModal;
  Codigo := Form2.CodPesq; // CodPesq é uma variável global do Form2
  Form2.Free;
  // Aqui seguiria meu código trabalhando com a var Codigo
end;



Responder

12/12/2005

Jairroberto

Olá, Felipe!

O método ShowModal interrompe a execução do código até que o formulário exibido por este método seja fechado, o que não ocorre com o método Show, por isso não está ocorrendo o que você espera.

Não quero dar pitaco no seu sistema, mas normalmente diálogos de pesquisa, são, como o próprio nome diz, ´diálogos´. Quero dizer com isso que numa rotina como essa, o normal é mesmo utilizar o método ShowModal, portanto não seria aconselhável neste caso utilizar um mdiChild, porque o usuário pode deixar o mdiChild clicando em outro formulário ou abrindo outro formulário, sem dizer se encontrou o que queria na pesquisa ou não, clicando respectivamente ´Ok´ ou ´Cancelar´.

A dica do Gameiro é uma possível solução, mas não entendo que seja a mais adequada. Eu não usaria MDI para este formulário de pesquisa e chamaria o método ShowModal, ´obrigando´ o usuário a interagir com o formulário.

Um abraço,
Jair


Responder

12/12/2005

Marcosrocha

Eu não usaria MDI para este formulário de pesquisa e chamaria o método ShowModal, ´obrigando´ o usuário a interagir com o formulário.

Justamente o que eu disse (ou quis dizer) acima!! :wink:


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar