Br41n Posted August 17, 2006 at 07:35 PM Report Share #44878 Posted August 17, 2006 at 07:35 PM Em borland C++ como é que ao clicar num botão faço com que um form novo apareça? Tenho criado o form1, já com o botão. E já abri um form2. Que código coloco para que o form2 apareça depois de premido o botão do form1? Obrigado 😛 Link to comment Share on other sites More sharing options...
Br41n Posted August 18, 2006 at 04:12 PM Author Report Share #45039 Posted August 18, 2006 at 04:12 PM 😄 Link to comment Share on other sites More sharing options...
unsignedint Posted August 21, 2006 at 01:34 AM Report Share #45517 Posted August 21, 2006 at 01:34 AM Ok isso é simples faz o seguinte. 1) Cria um novo projecto, salva com o nome por defeito, Unit1.cpp, Form1 2) Adiciona um novo form, por defeito vai-se chamar Form2 e Unit2.cpp, salva com o nome por defeito. 3) No Form1 adicona, junto ao #include<unit1.cpp> o #include<unit2.cpp>, deve ficar com algo assim: #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit2.h" // esta é que é alinha que tens q adicionar, OK ao Form1 (Unit1.cpp) //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; Pois bem tas no bom caminho. 4)Adiciona agora ao Form1 um butão (por defeito ele deve-se chamar Button1). Clicka duas vezes nele :-) E adiciona o seguinte codigo: Form2 = new TForm2(Application); // aqui crias um novo objecto do tipo Form, que é o teu form2 e da-lhe como parent(pai) o Form1 Form2->ShowModal(); // aqui mande exibir a janela Form2 delete Form2; // Qaundo a janela for fechada, liberta-se a memoria do objecto Ok, como podes ver até que é simples. Qualquer coisa avisa. Link to comment Share on other sites More sharing options...
Br41n Posted August 21, 2006 at 02:08 AM Author Report Share #45521 Posted August 21, 2006 at 02:08 AM 😄 ? Muito Obrigado! Sim, de facto é simples. Só uma duvida me resta. Quando dizes TForm2(Application), quais são as outras opções que posso colocar em TForm2(**)? Qual o resultado de cada uma? Obrigado! 😄 Link to comment Share on other sites More sharing options...
unsignedint Posted August 21, 2006 at 10:28 AM Report Share #45544 Posted August 21, 2006 at 10:28 AM Existem 3 tipos de contrutores, associados ao TForm (TForm::TForm), geralmente tu nunca chamas o TForm directamente, usualmente chamas sempre um descendente, no caso anterior como deves ter reparado foram o Form1 e Form2 que são ambos descendentes do TForm. Respondendo a tua questão são estes os contrutores disponiveis para os descententes d TForm: __fastcall virtual TForm(Classes::TComponent* AOwner) : Forms::TCustomForm(AOwner) { } __fastcall TForm(Classes::TComponent* AOwner, int Dummy) : Forms::TCustomForm(AOwner, Dummy) { } __fastcall TForm(HWND ParentWindow) : Forms::TCustomForm(ParentWindow) { } Para o 1 exemplo: Forms::TCustomForm(AOwner) { } TCustomForm é o teu Form2 de há pouco, aqui tu passa o AOwner ou seja a janela pai,que é o componente que é responsavel por libertar o Form dois, o resultado é basicamente se fechares o Form1 o Form2 vai atras. Forms::TCustomForm(AOwner, Dummy) { } Este nunca usei mas continuas a passar o Owner (pai, Form1) como parametro e passas como segundo parametro (um numero inteiro), ele serve para passares alguns componentes/recursos de um dado ficheiro ".DFM file" para o novo form, basicamente o segundo parametro, é apenas para distinguir o primeiro contrutor Forms::TCustomForm(AOwner) do segundo Forms::TCustomForm(AOwner, Dummy) , e usa-se da seguin-te maneira: WriteComponentResFile("Temp.dfm", Form1); … Form2 = new TForm(Application,1); ReadComponentResFile("Temp.dfm", Form2); O Ultimo só serve para passar como pai componetes que não sejam suportados directamente pela VCL do C++ (Borland), ou seja componetes que não descendam de TForm, como objectos ActiveX e fins, nunca usei. Como podes ver aqui "sempre" ou quase sempre se usa o 1 contrutor de todos, os restantes são para casos muito particulares, a explicaçao foi um pouco em cima do joelho mas se necessitares d um exmplo de algum a funcionar avisa q devo ter um para aqui. Fica bem. Link to comment Share on other sites More sharing options...
aMeScAS Posted February 10, 2007 at 11:33 AM Report Share #81643 Posted February 10, 2007 at 11:33 AM para nao criar novo topic, decidi aproveitar este... nao está a funcionar em C++ (Windows Forms Application) ... codigo vai ser diferente, certo? alguem podia ajudar? :dontgetit: Link to comment Share on other sites More sharing options...
aMeScAS Posted February 20, 2007 at 01:34 AM Report Share #84153 Posted February 20, 2007 at 01:34 AM para nao criar novo topic, decidi aproveitar este... nao está a funcionar em C++ (Windows Forms Application) ... codigo vai ser diferente, certo? alguem podia ajudar? :dontgetit: help?? Link to comment Share on other sites More sharing options...
Triton Posted February 20, 2007 at 01:46 AM Report Share #84158 Posted February 20, 2007 at 01:46 AM O que é que não está a funcionar? O melhor é criares um tópico novo e apresentares as tuas dúvidas, os erros, e o código para alguém te poder ajudar. <3 life Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now