Criação de forms
Pessoal,
Tenho um sistema MDIChild que cria um form do tipo Normal chamdo FrmPrincipal. Este form por sua vez tem alguns botoes que chamam outros forms do tipo normal setando a propriedade Parent do que está sendo criado como sendo o form Normal Principal (FrmPrincipal). Como exemplo vou usar o FrmClientes que é criado a partir do FrmPrincipal.
Eu crio os forms da seguinte maneira:
procedure TFrmPrincipal.Button1Click(Sender: TObject);
var
frm : TFrmClientes;
begin
frm := TFrmClientes.Create(Application);
frm.Parent := FrmPrincipal;
end;
Com isso eu consigo criar varios forms (FrmClientes no caso), onde em cada form eu poderia estar trabalhando com um registro.
Eu preciso ter um TreeView no FrmPrincipal que a cada FrmClientes que for criado o mesmo seja indicado dentro do tree, permitindo assim navegar de um FrmClientes para outro FrmClientes.
alguem poderia me ajudar ou dar alguma idéia?
abraço
Diogo
Tenho um sistema MDIChild que cria um form do tipo Normal chamdo FrmPrincipal. Este form por sua vez tem alguns botoes que chamam outros forms do tipo normal setando a propriedade Parent do que está sendo criado como sendo o form Normal Principal (FrmPrincipal). Como exemplo vou usar o FrmClientes que é criado a partir do FrmPrincipal.
Eu crio os forms da seguinte maneira:
procedure TFrmPrincipal.Button1Click(Sender: TObject);
var
frm : TFrmClientes;
begin
frm := TFrmClientes.Create(Application);
frm.Parent := FrmPrincipal;
end;
Com isso eu consigo criar varios forms (FrmClientes no caso), onde em cada form eu poderia estar trabalhando com um registro.
Eu preciso ter um TreeView no FrmPrincipal que a cada FrmClientes que for criado o mesmo seja indicado dentro do tree, permitindo assim navegar de um FrmClientes para outro FrmClientes.
alguem poderia me ajudar ou dar alguma idéia?
abraço
Diogo
Diogoalles
Curtidas 0
Respostas
Diogoalles
07/04/2005
Pessoal,
vou tentar deixar mais clara minha necessidade.
nesse FrmPrincipal eu chamo um form de pesquisa de Cliente, onde seleciono um determinado cliente. Ao selecioná-lo eu crio o FrmCliente já com os dados do cliente selecionado. O frmclientes é criado dentro de um Panel doFrmPrincipal, por isso ao criar o FrmClientes eu seto a propriedade Parent como FrmPrincipal.Panel1.
Nesse FrmPrincipal tenho do lado direito alguns botões q chamam determinadas telas que são criadas dentro do Panel1 (Align=AlClient) e do lado esquerdo eu tenho um TreeView onde eu gostaria de ir adicionando o FrmCliente já Criado indicando o nome do Cliente que está selecionado em cada um dos forms.
Ao fazer essa criação de formClientes dentro do FrmPrincipal não estou conseguindo navegar entre os frmclientes criados.
espero ter deixado mais claro e agradeço a todos que puderem me ajudar.
abraço
Diogo
vou tentar deixar mais clara minha necessidade.
nesse FrmPrincipal eu chamo um form de pesquisa de Cliente, onde seleciono um determinado cliente. Ao selecioná-lo eu crio o FrmCliente já com os dados do cliente selecionado. O frmclientes é criado dentro de um Panel doFrmPrincipal, por isso ao criar o FrmClientes eu seto a propriedade Parent como FrmPrincipal.Panel1.
Nesse FrmPrincipal tenho do lado direito alguns botões q chamam determinadas telas que são criadas dentro do Panel1 (Align=AlClient) e do lado esquerdo eu tenho um TreeView onde eu gostaria de ir adicionando o FrmCliente já Criado indicando o nome do Cliente que está selecionado em cada um dos forms.
Ao fazer essa criação de formClientes dentro do FrmPrincipal não estou conseguindo navegar entre os frmclientes criados.
espero ter deixado mais claro e agradeço a todos que puderem me ajudar.
abraço
Diogo
GOSTEI 0
Beppe
07/04/2005
Oi!
Logo após criar o form, faça
TreeView1.Items.AddChild(nil, frm.Caption).Data := frm;
No OnChange do TV, vc pega o form do ítem com TForm(Node.Data), e pode chamar .BringToFront nele.
Logo após criar o form, faça
TreeView1.Items.AddChild(nil, frm.Caption).Data := frm;
No OnChange do TV, vc pega o form do ítem com TForm(Node.Data), e pode chamar .BringToFront nele.
GOSTEI 0
Diogoalles
07/04/2005
Bha Beppe
Blz .. isso mesmo....
só mais uma questão, qual a melhor maneira pra limpar da memoria esses forms q são criados? destroy? free?
abraço
Diogo
Blz .. isso mesmo....
só mais uma questão, qual a melhor maneira pra limpar da memoria esses forms q são criados? destroy? free?
abraço
Diogo
GOSTEI 0
Beppe
07/04/2005
O Free é preferível, porque ele chama Destroy em sequencia apenas se o form não form nil. No seu caso, acho que Destroy não causaria problemas, mas não é uma boa prática chamar o destructor diretamente(acho eu).
GOSTEI 0
Diogoalles
07/04/2005
Beppe ou alguem q possa me ajudar... :lol:
Mais uma duvida,
Neste FrmPrincipal eu crio FrmClientes, FrmPedidos..etc...
Com que comando eu posso fazer um processo de repetição para que a cada form aberto que ele encontrar a função feche-o (close) ?
No caso para FrmClientes a variável é FrmC.. para os FrmPedidos a variável é FrmP..e assim por diante..
eu gostaria de fechar todos os clientes e em alguns casos todos o s pedidos também
obrigado
Diogo
Mais uma duvida,
Neste FrmPrincipal eu crio FrmClientes, FrmPedidos..etc...
Com que comando eu posso fazer um processo de repetição para que a cada form aberto que ele encontrar a função feche-o (close) ?
No caso para FrmClientes a variável é FrmC.. para os FrmPedidos a variável é FrmP..e assim por diante..
eu gostaria de fechar todos os clientes e em alguns casos todos o s pedidos também
obrigado
Diogo
GOSTEI 0
Diogoalles
07/04/2005
Pessoal
estou com mais um problema que não to conseguindo resolver.
no FrmPrincipal eu tenho um DBText que tem a propriedade DataSource como: frm.DataSourceClientes ... onde frm é a variavel do form criado
só q no evento OnChange do treeview onde ue tenho:
TForm(Node.Data).BringToFront;
não estou conseguindo fazer com que o DBText receba o valor da tela selecionada qu veio a frente.. o dbtext fica sempre com o valor da ultima tela criada... como atualizo isso também?
obrigado
Diogo
estou com mais um problema que não to conseguindo resolver.
no FrmPrincipal eu tenho um DBText que tem a propriedade DataSource como: frm.DataSourceClientes ... onde frm é a variavel do form criado
só q no evento OnChange do treeview onde ue tenho:
TForm(Node.Data).BringToFront;
não estou conseguindo fazer com que o DBText receba o valor da tela selecionada qu veio a frente.. o dbtext fica sempre com o valor da ultima tela criada... como atualizo isso também?
obrigado
Diogo
GOSTEI 0
Diogoalles
07/04/2005
bom dia galera
Alguém teria uma dica pra me dar porque ainda não consegui resolver meus dois ultimos problemas..
abraço
Diogo
Alguém teria uma dica pra me dar porque ainda não consegui resolver meus dois ultimos problemas..
abraço
Diogo
GOSTEI 0
Diogoalles
07/04/2005
Beppe ou alguem que possa ajudar
Eu gostaria de uma explicação um pouco melhor sobre as duas funções que utilizei para adicionar o valor no Treeview e a outra utilizada no Onchange.... como não utilizei o treeview ainda dei uma lida no help mas ñ consegui pegar bem o conceito.. pq talvez entedendo o funcionamento eu resolva o que tenho pendente.
função1
TreeView1.Items.AddChild(nil, frm.Caption).Data := frm;
função2
TForm(Node.Data).BringToFront;
obrigado
Diogo
Eu gostaria de uma explicação um pouco melhor sobre as duas funções que utilizei para adicionar o valor no Treeview e a outra utilizada no Onchange.... como não utilizei o treeview ainda dei uma lida no help mas ñ consegui pegar bem o conceito.. pq talvez entedendo o funcionamento eu resolva o que tenho pendente.
função1
TreeView1.Items.AddChild(nil, frm.Caption).Data := frm;
função2
TForm(Node.Data).BringToFront;
obrigado
Diogo
GOSTEI 0
Diogoalles
07/04/2005
Ainda não consegui resolver..
alguém poderia dar alguma dica?
obrigado
Diogo.
alguém poderia dar alguma dica?
obrigado
Diogo.
GOSTEI 0
Edilcimar
07/04/2005
para fechar forms em MDI eu utilizo
If MDIChildCount >= 1 then
Begin
With Form1 do
For X := MDIChildCount -1 downto 0 do
MDIChildren[X].Close;
End;
você pode adaptar para o seu caso, quanto ao destruir o help do delphi aconselha a utilizar o release, o qual chama os métodos de destroy e free
If MDIChildCount >= 1 then
Begin
With Form1 do
For X := MDIChildCount -1 downto 0 do
MDIChildren[X].Close;
End;
você pode adaptar para o seu caso, quanto ao destruir o help do delphi aconselha a utilizar o release, o qual chama os métodos de destroy e free
GOSTEI 0
Diogoalles
07/04/2005
Olá
O MDIChildCount não funciona por que crio forms do tipo Normal dentro de um MdiChild, sempre que crio um form Normal seto a propriedade Parent := FrmPrincipal(que é o MDIChild).PanelPrincipal.
Se alguém puder olhar eu posso enviar um exemplo do que eu fiz,
só enviem um mail para diogo.alles@gmail.com que envio o exemplo.
obrigado
Diogo
O MDIChildCount não funciona por que crio forms do tipo Normal dentro de um MdiChild, sempre que crio um form Normal seto a propriedade Parent := FrmPrincipal(que é o MDIChild).PanelPrincipal.
Se alguém puder olhar eu posso enviar um exemplo do que eu fiz,
só enviem um mail para diogo.alles@gmail.com que envio o exemplo.
obrigado
Diogo
GOSTEI 0
Diogoalles
07/04/2005
Pessoal,
Segue abaixo link de um exemplo do que preciso..
Se alguem puder dar uma olhada e me ajudar
fico agradecido.. Valeuuu
[url]http://www.sulsys.com.br/Exemplo/Exemplo_Frms.zip[/url]
abraço
Diogo
Segue abaixo link de um exemplo do que preciso..
Se alguem puder dar uma olhada e me ajudar
fico agradecido.. Valeuuu
[url]http://www.sulsys.com.br/Exemplo/Exemplo_Frms.zip[/url]
abraço
Diogo
GOSTEI 0
Diogoalles
07/04/2005
bom dia galera
vamos começar a semana bem e vamos ver se a galera pode me dar uma mãozinha!
[url]http://www.sulsys.com.br/Exemplo/Exemplo_Frms.zip[/url]
valeu
vamos começar a semana bem e vamos ver se a galera pode me dar uma mãozinha!
[url]http://www.sulsys.com.br/Exemplo/Exemplo_Frms.zip[/url]
valeu
GOSTEI 0
Beppe
07/04/2005
função1
TreeView1.Items.AddChild(nil, frm.Caption).Data := frm;
Este comando adiciona um ítem na treeview e associa com o formulário frm, que já deve estar criado.
função2
TForm(Node.Data).BringToFront;
Isto trás o form pra frente das outras janelas.
GOSTEI 0
Diogoalles
07/04/2005
Certo..
Será que poderia dar uma olhada no exemplo que montei?
Porque não estou conseguinde fazer algumas funcionalidades, como por exemplo fechar o Form ativo ou todos os forms.
Fazer com que um campo DB receba o valor do campo do form ativo no Onchange do tree.
No exemplo tenho tudo bem claro.. se puder dar uma olhada segue:
[url]http://www.sulsys.com.br/Exemplo/Exemplo_Frms.zip[/url]
compile o projeto e acesse o menu na opção Cadastro/Manutenção
do lado direito está a forma de operação e do lado esquerdo os problemas
obrigado
Diogo
Será que poderia dar uma olhada no exemplo que montei?
Porque não estou conseguinde fazer algumas funcionalidades, como por exemplo fechar o Form ativo ou todos os forms.
Fazer com que um campo DB receba o valor do campo do form ativo no Onchange do tree.
No exemplo tenho tudo bem claro.. se puder dar uma olhada segue:
[url]http://www.sulsys.com.br/Exemplo/Exemplo_Frms.zip[/url]
compile o projeto e acesse o menu na opção Cadastro/Manutenção
do lado direito está a forma de operação e do lado esquerdo os problemas
obrigado
Diogo
GOSTEI 0
Diogoalles
07/04/2005
Pessoal,
acabei esquecendo se alguem puder ajudar pode me contatar direto por mail : diogo.alles@gmail.com
ou msn: diogoalles@hotmail.com
valeu
acabei esquecendo se alguem puder ajudar pode me contatar direto por mail : diogo.alles@gmail.com
ou msn: diogoalles@hotmail.com
valeu
GOSTEI 0