Toon posts:

[C++]Variabelen verzenden

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem. :?

Ik heb een form gemaakt (frmMain). Als men op Button 1 klikt is het de bedoeling dat het form frmRewind geopend wordt.

Dit doe ik met de syntax

C++:
1
frmRewind->Show();

In de form load van frmRewind word de variabele "CLpiont" opgehaald uit "frmMain" en in de variabele piont.

Dit doe ik zo:

C++:
1
2
3
  point = 0;
  point = frmMain->Clpoint;
   edtTest->Text = (point); // kijken wat de waarde is van piont door hem zichtbaar te maken

Dit gaat de eerste keer goed. dan sluit ik het form frmRewind. In frmMain verander ik de waarde van "CLpoint". Ik open opnieuw frmRewind. ik doe dit opdezelfde manier als eerst.

Dit is het probleem.

Ik open opnieuw frmRewind maar de nieuwe waarde van "CLpoint" komt niet in "piont" te staan. Het lijkt wel alsof bij het openen van frmRewind niet meer de procedure formload woord gedaan.

ik dacht dat het kon zijn dat ik het frmRewind de eerste keer niet goed heb afgesloten. ik heb het form op deze manieren geprobeert te sluiten.

C++:
1
2
3
frmRewind->Close();
frmRewind->Free();
frmRewind->Hide();

wat ik ook deed het werkte niet.

toen heb ik geprobeert een andere manier om het form te openen

in de .cpp file van frmRewind heb dit verwijderd

C++:
1
TfrmRewind* frmRewind;

en in het .h bestand
C++:
1
extern PACKAGE TfrmRewind* frmRewind;

Ik heb dit in het .ccp file van frmMain gedaan
C++:
1
2
3
4
5
6
7
8
9
TfrmRewind* frmRewind = new TfrmRewind(0);
try
{
  frmRewind->ShowModal();
}
__finally
{
  delete frmRewind;
}

Het form frmRewind opent wel maar ik kan hem dan niet meer met de button sluiten.

is er iemand die weet hoe het precies werkt.

[ Voor 3% gewijzigd door Verwijderd op 27-10-2004 09:32 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Zet eens een messagebox in je form load, zodat je ziet wanneer 'ie in die routine komt.
Ten tweede is het close-en van een form, daarna free-en en dan hide-en nogal raar, vind je niet? Ik zou het helemaal niet gek vinden als die hide weer een form load afvuurt ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
RobIII schreef op 27 oktober 2004 @ 10:56:
Zet eens een messagebox in je form load, zodat je ziet wanneer 'ie in die routine komt.
Ten tweede is het close-en van een form, daarna free-en en dan hide-en nogal raar, vind je niet? Ik zou het helemaal niet gek vinden als die hide weer een form load afvuurt ;)
Sorry had ik niet duidelijk weer gegeven.

Het is zo dat ik dit niet tegelijk heb geprobeert maar deze manieren heb ik geprobeert maar maar 1 per keer geprobeert en niet alle 3

Ik heb het met een messagebox geprobeert. Bedankt voor de tip :) .

Ik ben erachter gekomen dat de formload van frmRewind bij het laden van frmMain in 1 keer wordt geladen en de variabelen worden ingelezen. Op het moment dat ik met de button frmRewind zichtbaar wil maken loopt het programma de formload van frmRewind niet meer door want dat heeft hij al gedaan bij het laden van het hoofdprogramma

Ik snap niet hoe dit kan :?

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20-05 20:29

Robtimus

me Robtimus no like you

FF offtopic:
C++:
1
2
3
frmRewind->Close();
frmRewind->Free();
frmRewind->Hide();
Als Free doet wat ik denk dat ie doet (object opruimen; naamgeving uit Borland C++ Builder?) dan wil dit nog wel eens leuke fouten geven. Bedenk zelf maar even waarom ;)

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Verwijderd

Topicstarter
IceManX schreef op 27 oktober 2004 @ 11:50:
FF offtopic:
C++:
1
2
3
frmRewind->Close();
frmRewind->Free();
frmRewind->Hide();
Als Free doet wat ik denk dat ie doet (object opruimen; naamgeving uit Borland C++ Builder?) dan wil dit nog wel eens leuke fouten geven. Bedenk zelf maar even waarom ;)
Ik heb ervoor gekozen om het form te sluiten met
C++:
1
frmRewind->Close();

Het geeft geen foutmeldingen niet bij het openen van het form en niet bij het sluiten.

Ik gebruik geen "free()" meer dus het is niet meer voor mij van toepassing maar bedankt voor uw tip ;)

Ik snap alleen niet precies waarom C++ alle forms opend bij het laden van het programma. Ik include .h bestanden maar dit kan ik er niet uit halen omdat de variabelen van het andere form niet bekent zijn.

[ Voor 3% gewijzigd door Verwijderd op 27-10-2004 12:01 ]


  • Robtimus
  • Registratie: November 2002
  • Laatst online: 20-05 20:29

Robtimus

me Robtimus no like you

Als je idd BC++B gebruikt: bij de Project options staan de forms die standaard geladen worden zodra het programma wordt geopend.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


  • bramseltje
  • Registratie: September 2001
  • Laatst online: 08-04 12:01
Zou je niet in de OnShow() van je Form kunnen zetten dat ie opnieuw de variabele ophaalt? En dan in plaats van in de OnLoad().

Want zou het kunnen zijn dat die namelijk maar een keer wordt aangeroepen, en voor elke keer dat je het form opnieuw laat zien alleen OnShow() wordt aangeroepen?
Pagina: 1