Avatar billede tokelil Nybegynder
14. februar 2001 - 15:05 Der er 8 kommentarer og
1 løsning

Er der en god forklaring??

Er der en god grund til at det ikke er ligegyldigt hvor i min OnCreate event at jeg sætter en bool til False?
I følgende kode sætter jeg BeenChanged = False to steder, og hvis jeg sætter den til false i starten virker det ikke som det skal (Bruger den ved OnClose. Er global), mens det virker som det skal hvis jeg sætter variablen til sidst i OnCreate.
Nogen der kan forklare mig hvorfor???

Kode:
  TStringList* strListTmp = new TStringList();
  BeenChanged = False; // Første sted. Virker ikke
  try {
    strListTmp->LoadFromFile(\"Color.ini\");
  }
  catch (...) {
    ShowMessage(\"Error! Couldn\'t load \'\'Color.ini\'\'.\\nPlease reinstall!\");
  }
  ComboBox1->Items->Add(\"1 - Say\");
  ........
  ComboBox1->Items->Add(\"34 - Spell Failures (resists, fizzles, missing component, bad target, etc.)\");

  Sti = strListTmp->Values[\"IniFile\"];
  try {
    strList->LoadFromFile(Sti);
  }
  catch (...) {
    ShowMessage(\"Error! Couldn\'t load \'\'eqclient.ini\'\'.\\nPlease check color.ini and write the right path to eqclient.ini\");
  }

  // Henter checkboxes
  cbRun->Checked = ToBool(strList->Values[\"RunMode\"]);
  delete strListTmp;
  BeenChanged = False; // Anden gang, hvor den skal stå for at det virker! ?

}
Avatar billede mukke Nybegynder
14. februar 2001 - 15:26 #1
Prøv evt. at flytte den linie for linie op/ned i koden, så du kan se hvor der er fra den ikke \"fungerer\" - på den måde vil du måske bedre kunne få overblik over hvad det er der ødelægger den.
Avatar billede tokelil Nybegynder
14. februar 2001 - 18:02 #2
Tja... Proever det maaske! Bare pisse irreterende, de jeg brugte pænt langt tid på at finde fejlen, da den stod i toppen!
Avatar billede nolle_k Nybegynder
15. februar 2001 - 11:44 #3
Hvad bruger du BeenChanged til i OnClose??
Avatar billede tokelil Nybegynder
15. februar 2001 - 14:15 #4
Jeg bruger BeenChanged i en if sætning ved OnClose, så hvis noget er ændret, kommer der en dialog box.
Avatar billede nolle_k Nybegynder
15. februar 2001 - 14:16 #5
Hvad er det helt præcist fejlen er i forbindelse med forkert placering af BeenChanged???
Avatar billede tokelil Nybegynder
15. februar 2001 - 14:57 #6
Fejlen består i at min if-sætning (i OnClose)giver et forkert resultat, hvilket betyder at der kommer en dialogbox når jeg lukker programmet. Det skal kun ske når BeenChange = True, men sker altså også når BeenChanged står i starten af OnCreate! ?
håber det hjælper lidt... Jeg forstår det i hvert fald ikke!
Avatar billede nolle_k Nybegynder
15. februar 2001 - 15:01 #7
Kunne man ikke formode at det fordi du har lavet et event der hedder OnChange(...) på en af combo boksene, der gør at BeenChange bliver sat til True!!!

Det vil jeg næsten ÆDE min gamle hat på!!

Jeg vil væde med at hvis du udkomenterer cbRun->Checked linie så vil det funge selvom at du har BeenChanged øverst i koden!!

//Nolle_K
Avatar billede tokelil Nybegynder
15. februar 2001 - 16:04 #8
Ahhh... Det tror jeg faktisk du har ret i!!!
Avatar billede nolle_k Nybegynder
15. februar 2001 - 16:05 #9
Ja selvfølgelig!! 

Man lærer vel af sine egne fejl!!
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Senior Platform Engineer

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Netværksarkitekt til Forsvarets Cyberdivision i Hvidovre eller Karup