Duvida em Formulario
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
Curtidas 0
Respostas
Gameiro
12/12/2005
E se vc colocar o código que está depois do showmessage no onclose do formulario.
Ate mais. :)
Ate mais. :)
GOSTEI 0
Marcosrocha
12/12/2005
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;
GOSTEI 0
Jairroberto
12/12/2005
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
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
GOSTEI 0
Marcosrocha
12/12/2005
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:
GOSTEI 0