Wo Variable initialisieren
-
Moin ich schon wieder!
Wo muß ich bei einer dialogbasierenden Anwendung einer Variablen beim Programmstart einen Wert zuweisen.
Bei SDI-Anwendungen ist es im Kostruktor der Dokumentenklasse aber hier?
THX Markus
-
Im Konstruktor des Dialoges?
In OnInitDialog?
-
hmmmm!
Funzt net. Ich möchte die int Variable "m_Status" zum Prog.-Start gleich Null setzen, um damit Kommentare zu steuern. Tut aber nicht, sondern if-Anweisung registriert immer den Wert 1.
mfg
-
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.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