Avatar billede tigertool Nybegynder
19. juli 2004 - 02:37 Der er 5 kommentarer og
2 løsninger

Ny form ved klik på button

Hvordan får man en ny form frem ved et klik på en button? Jeg anvender C++Builder 6 - og har et projekt med 2 Forms. Når jeg kører mit projekt kan jeg se Form1 - men jeg ville gerne have det sådan at ved et klik på en button kom Form2 frem.

Bonus: Hvordan sender man data med til den nye Form - og hvordan modtager 'hoved Formen' dataen igen?
Avatar billede laffe Nybegynder
19. juli 2004 - 10:20 #1
Hvis din Form bliver oprettet automatisk, så skal du bare gøre følgende:

Form2->Show();


Hvis den ikke er oprettet så skal du oprette den:

Form2 = new TForm2(NULL);
Form2->Show();
Avatar billede jakobdo Ekspert
19. juli 2004 - 13:10 #2
Bonus: Du kan hente data frem og tilbage mellem de 2 forme ved at tilføje FORM1's header til FORM2 og omvendt. Så kan du f.eks. hente FORM1's værdi i FORM2 med: FORM2->Text = FORM1->Value;
Avatar billede tigertool Nybegynder
19. juli 2004 - 14:17 #3
laffe > Det kan jeg desværre ikke få til at virke :(

Min main klasse ser sådan ud:

#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
USEFORM("Unit2.cpp", Form2);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        try
        {
                Application->Initialize();
                Application->CreateForm(__classid(TForm1), &Form1);
                Application->CreateForm(__classid(TForm2), &Form2);
                Application->Run();
        }
        catch (Exception &exception)
        {
                Application->ShowException(&exception);
        }
        catch (...)
        {
                try
                {
                        throw Exception("");
                }
                catch (Exception &exception)
                {
                        Application->ShowException(&exception);
                }
        }
        return 0;
}
Avatar billede laffe Nybegynder
19. juli 2004 - 14:21 #4
Sådan ser min Unit1.cpp ud.

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
  Form2->Show();
}
//---------------------------------------------------------------------------
Avatar billede tigertool Nybegynder
19. juli 2004 - 14:27 #5
Jamen det er jo for sejt... Jeg takker..

.zZ(Hvorfor husker jeg aldrig at include.. tsk tsk)Zz.
Avatar billede jakobdo Ekspert
19. juli 2004 - 14:45 #6
Ang. Dit bonus spørgsmål, så ved jeg ikke om du kan bruge følgende eksempel: http://www.damgaard-olsen.dk/TigerTool.zip
Avatar billede tigertool Nybegynder
19. juli 2004 - 15:07 #7
jacobdo > Tak, det kan jeg i al fald :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester