Hilfe zum umgang mitRegistry Einträgen und Funktionsabbrüchen



  • Hi,

    bin neu hier. Hab daher auch zwei kleinere Fragen:

    - Ich möchte meinen Kunden eine Demoversion anbieten und dies mit einem Eintrag in der Registry lösen. Wie mache ich so was, also Einträge hinzufügen, bearbeiten und auslesen?

    - Ich habe ein Funktionsaufruf in dem ein paar weitere Funktionen enthalten sind. Am Anfang habe ich jedoch eine Bedingung, und wenn diese nicht erfüllt ist, soll die Fuktion nicht mehr weiter bearbeitet werden. Wie realisiere ich sowas (break ist laut BCB-Hilfe ja nur für Schleifen und switch-Anweisungen gedacht)?

    Danke für die Antworten!





  • zu 2.:

    void Funktion (ausgelöst durch Button klick) - also kann da kein return stehen..



  • Doch, da kann ein return stehen, bloß ohne Rückgabewert.



  • alles klar.. vielen dank!

    ich hab da aber noch was:

    int aa = 0, bb = 0, wu = 0, erg = 0, eg[9];
    bool ueberlauf = false, rb0 = false, rb1 = false, rb2 = false, norb = false;
    AnsiString ff = "";
    //Initialisierung------------------------------------------------------------
    
    void __fastcall Tmainform::FormCreate(TObject *Sender)
    {
      bckgrnd_image->Picture->LoadFromFile("D:\\Programme\\Borland\\CBuilder6\\Projects\\Enneagramm\\enneagramm_bgrnd.bmp");
      text_fragen->Visible = false;
      rbut_0->Checked = &rb0;
      rbut_1->Checked = &rb1;
      rbut_2->Checked = &rb2;
    }
    // Kein Radiobutton Checked?-------------------------------------------------
    
    bool norbchk(bool& nu, bool& ei, bool& zw)
    {
      bool xy = true;
    
      if (!nu && !ei && !zw) warningform->ShowModal();
      else xy = false;
      return xy;
    }
    //Funktion Weiter button-----------------------------------------------------
    
    void next_but()
    {  
      if (norbchk(rb0, rb1, rb2)) return;
      wu = rbcheck(rb0, rb1, rb2);
      erg[&aa] = ergfkt(aa, wu);
      ueberlauf = uebrlaufa(aa, ueberlauf);
      aa = questa(aa, ueberlauf);
      ff = fragen_typ[aa][bb];
      if (ff == "") next_but();                	  //falls kein Satz vorhanden
      bb = questb(aa, bb);
    }
    //Weiter Button--------------------------------------------------------------
    
    void __fastcall Tmainform::but_weiterClick(TObject *Sender)
    {
      ed_rb0->Text = BoolToStr(rb0);
      ed_rb2->Text = BoolToStr(rb1);
      ed_rb1->Text = BoolToStr(rb2);
      next_but();
      text_fragen->Text = ff;
    }
    

    da oben ist mein Code (ein Teil zumindest)!

    dazu ein paar Fragen:

    - rbut_0, _1 und _2 sind vom Typ TRadioButton und die Variablen rb0-2 sind ein Verweis auf die Property Checked.
    - erstens sind alles 3 RBs mit der Property Checked-> false beim Start zugewiesen - der letztere ist aber true! Warum?
    - trotz des true Wertes des RB (oder wenn ich einen anderen auf true setz) wird die Bedinung (!nu && !ei && !zw) der Funktion norbchk immer erfüllt, da jedes mal mein Fenster aufgeht! Warum?
    - wenn ich ed_rb0 - 2 in einer Funktion von einer Funktion nutzen will, sagt mir der Compiler immer, dass er das Symbol nicht kennt! Warum und wie kann man das umgehen?

    Danke Leute für die Antworten.



  • Bitte die Faustregel beachten: ein Thema pro Thread, ein Thread pro Thema. Danke!



  • Was soll das

    rbut_0->Checked = &rb0;
    

    Hier weist du einer Eigenschaft vom Typ bool (Checked) einen Pointer zu. Da der Pointer im allgemeinen nicht 0 ist ergibt das immer true.
    Wolltest du dir eine Referenz auf Checked holen? Auch das geht nicht. Schau einfach mal in die Hilfe zu __property.
    [edit]Entschuldigung Jansen. Das hätte ich natürlich erwähnen/beachten müssen.[/edit]



  • Tja und wie schon gesagt,dass

    return xy;
    

    geht auch nicht. Jedenfalls offiziell. Besser Klassenvariable in der Das Ergebnis übergeben wird


Anmelden zum Antworten