Wo Variable initialisieren



  • Früher als im Konstruktor geht ja wohl nicht. 😕
    Wo prüfts du denn den Inhalt wenn du feststellst es geht nicht ?



  • UpdateData(FALSE) vergessen?



  • Hm, du hast nichts von ner Membervariable gesagt.
    Wenn du ne globale variable hast, kannst du sie ja gleich initialisieren.
    Ansonsten ist der Konstruktor die "schnellste" Möglichkeit.
    Wenn du die Variable nicht initialisierst, hat sie den Wert, der zuvor im Speicher war - und dass immer 1 im Speicher an der Stelle sein soll ist schon recht verdächtig 🙄
    Schau mal, dass du sie nicht aus versehen auf 1 setzst.

    Grüße Rapha



  • Das mit den Konstruktor ist mir schon klar.

    In den Methoden der Dlg setze ich die Var auf 1 bzw. belasse auf Null. In einer anderen Methode gebe ich dann den entsprechenden Text aus.

    void CSpeichernHomeDlg::OnButtonStart() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
    	//Start des Zählvorgenges
    
    	m_Action.InsertString(0, "Zählvorgang wurde gestartet...");
    	cancelflag=0; 
    	GetDlgItem(IDC_BUTTON_START)->EnableWindow(false); 
    	AfxBeginThread(ThreadFunktion,this); 
    }
    
    void CSpeichernHomeDlg::OnButtonStop() 
    {
    	// TODO: Code für die Behandlungsroutine der Steuerelement-Benachrichtigung hier einfügen
    
    	if (m_Status = 0)
    	{
    		m_Action.InsertString(0, "Bitte erst den Zählvorgang starten!");
    	}
    	if (m_Status = 1)
    	{
    		m_Action.InsertString(0, "Der Zählvorgang wurde gestoppt!");
    		cancelflag=1; 
    	}
    
    }
    

    Und im Konstruktor habe ich geschrieben:

    BOOL CSpeichernHomeDlg::OnInitDialog()
    {
    	CDialog::OnInitDialog();
    
    	m_Status = 0;
    

    Bei mir springt das Prog. immer in if(m_Status = 1)

    THX



  • du solltest kein = setzten

    = //Zuweisung

    ==//Vergleich

    viel glück



  • @ raveangel!

    du solltest kein = setzten 
    
    = //Zuweisung 
    
    ==//Vergleich
    

    Das habe ich verstanden. Nu funzt es auch MegaDanke(); 👍

    Kurze Frage: Wie lange braucht man, um vc++ zu können, bzw. welche Ausbildung gobt es dafür?

    Markus



  • um es ein wenig zu verstehen gibt es Kurse.

    Aber um es zu können braucht es lange.
    Es kommt mit der Erfahrung.
    Habe es schon 1,5 Jahre in der Schule,
    und muss immernoch öfters nachschauen.
    Aber üb soviel es geht.

    Greaz



  • @Rapha
    Membervariablen werden automatisch im Konstr. initialisiert da die IDE sie dort reinschreibt. Zumindest VC++ 6 und VC++ 7.1.

    @mstank:

    ca. 20 Jahre und Microsoft hält Kurse ab.



  • Unix-Tom schrieb:

    @Rapha
    Membervariablen werden automatisch im Konstr. initialisiert da die IDE sie dort reinschreibt. Zumindest VC++ 6 und VC++ 7.1.

    Hier sollte man noch erwähnen, dass das nur passiert, wenn man die Membervariable mit dem Assistenten anlegt.



  • Yo, aber wer verwendet denn schon denn assigen Assi 🤡


Anmelden zum Antworten