Avatar billede angryass Nybegynder
15. september 2002 - 19:13 Der er 1 kommentar

Sætte objekter på andre formularer i Borland C++ Builder 5.0

Jeg ønsker at sætte en tekststreng på en EditBox fra en anden form, men får en memmory error hele tiden.

Mvh
Bo
Avatar billede soepro Nybegynder
16. september 2002 - 10:40 #1
Jeg forstår dit problem derhen, at du vil overføre indholdet fra en TEdit på een form til f.eks. en TLabel på en anden form ?!?

Hvis du får memory-problem, er det sikkert fordi din Form2 ikke er oprettet endnu. Rækkefølgen de forskellige forms bliver oprettet i, kan du se under 'Project->Options' i 'Forms' fanen - alternativt ved at kigge i den .CPP som hedder det samme som dit projekt. Du kan formentlig så løse dit problem, ved ganske enkelt at bygge om på rækkefølgen af de to. (Husk på - første form der dannes, er også den form den vises først - UANSET hvad du gør.

C++ Builder fyrer både constructor, FormCreate, FormActivate og FormShow eventerne af for de forme der dannes i fbm. den FormCreate() der ligger i projekt .CPP'en. Det er kun Paint eventen der "forsinkes" til der bliver lavet Application->Run();

Jeg laver gerne følgende krølle i FormPaint() hvis en ndring af rækkefølgen ikke løser mit problem:

void __fastcall TForm1::FormPaint(TObject *Sender)
{
  static bool firstTime = true;
  if (firstTime && Form2 != NULL)
  { // ALTID dette først, da kald til andre funktioner kan "trække" en OnPaint
    // event, og sende programmet herned igen. (F.eks. ændring af en pro-
    // perty.)
    firstTime = false;

    Form2->Label1->Caption = Edit1->Text;
  }
} // FormPaint

Bemærk krøllen omkring Form2 != NULL - hvis Form2 ikke er dannet endnu, vil Form2 indeholde NULL og så kan du ikke bruge den som pointer endnu.
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