CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
BOOL bWert;
// propSheet.m_Page3.m_bDatum=FALSE;
//dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren if(propSheet.DoModal()==IDOK)
{
bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
BOOL bWert;
// propSheet.m_Page3.m_bDatum=FALSE;
//dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren if(propSheet.DoModal()==IDOK)
{
bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
BOOL bWert;
// propSheet.m_Page3.m_bDatum=FALSE;
//dlg.m_bDatum=WERT; //mit deinem gemerkten Wert die Variable initialisieren if(propSheet.DoModal()==IDOK)
{
bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
Hallo nochmal ,
ich habe mein Code so geändert aber es funktioniert immer noch nicht.
Ich tue Checkbox abhacken und auf OK button drücken , und wenn ich mein Dialog nochmal öffne, dann sehe ich dass Checkbox nixht abgehackt ist..
Woran kann das liegen , muss ich noch was ändern??
weil bWert ein Member deiner dialog-Klasse sein muß, sonnst ist doch der Wert verlohren wenn die Funktion beendet ist. Diesen Wert mußt du natürlich auch wieder in deiner Page setzen vor aufruf von DoModal.
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1); //+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
propSheet.m_Page3.bWert=FALSE;
if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1); //+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
propSheet.m_Page3.bWert=FALSE;
if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1); //+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
propSheet.m_Page3.bWert=FALSE;
if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
ich habe mein Code so wie oben geändert aber es funktioniert einfach nicht.
bWert ist jetzt member Variable meines Pages/bzw.Dialog Klasse siehe unten.
C/C++ Code:
propSheet.m_Page3.bWert
C/C++ Code:
propSheet.m_Page3.bWert
C/C++ Code:
propSheet.m_Page3.bWert
Was muss noch geändert werden..?
Unten kann man mein Page/dialog Klasse funktionen sehen , soll ich da etwas ändern???
und dann DoModal aufrufst, was glaubst du wie der Wert von bWert bei jeden aufruf ist? Immer FALSE weil du das ja genau so setzt. Leg doch die ganzen Variablen die du dir Merken willst in M-Doc also deiner Documentenklasse an und lies diese werte bei OnIni in deine Variablen ein und bei OnOK() wieder in dein Document zurück.
genau so kannst du dir das auch machen wenn du das nicht in der Page machen willst sondern wie vorher beschrieben, du mußt dir halt nur eine Stelle suchen wo du die ganzen werte dir merkst, wenn das recht viel ist verpack ich das dann meist in eine eigene klasse (CSetup) die dann das Sichern und Laden der Werte aus irgendeinen File oder Registry oder was weis ich übernimmt. So is das dann alles gekapselt und man muß nicht endlos suchen.
class CDenemeStatistikDoc : public CDocument
{
protected: // Nur aus Serialisierung erzeugen
CDenemeStatistikDoc();
DECLARE_DYNCREATE(CDenemeStatistikDoc)
// Attribute public:
DateiStruktur m_data;
CDatabase *m_pDatabase;
BOOL bWert; //bWert hab ich in Doc klasse angelegt
class CDenemeStatistikDoc : public CDocument
{
protected: // Nur aus Serialisierung erzeugen
CDenemeStatistikDoc();
DECLARE_DYNCREATE(CDenemeStatistikDoc)
// Attribute public:
DateiStruktur m_data;
CDatabase *m_pDatabase;
BOOL bWert; //bWert hab ich in Doc klasse angelegt
class CDenemeStatistikDoc : public CDocument
{
protected: // Nur aus Serialisierung erzeugen
CDenemeStatistikDoc();
DECLARE_DYNCREATE(CDenemeStatistikDoc)
// Attribute public:
DateiStruktur m_data;
CDatabase *m_pDatabase;
BOOL bWert; //bWert hab ich in Doc klasse angelegt
// DataStruktur m_data;
Jetzt kommt die zweite schritt, das ist mein Page/ Dialog Klasse
void CMyPropertyPage3::OnOK()
{
m_pDoc->bWert = bWert;//Wert in Document sichern
CPropertyPage::OnOK();
}
und jetzt kommt die dritte schritt wo ich meine Dialog aufrufe
C/C++ Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
// propSheet.DoModal();
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
// propSheet.DoModal();
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
C/C++ Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
CMyPropertySheet propSheet;
propSheet.DocPt2(m_pDoc1);
// propSheet.DoModal();
//+-----------------------------------------------------------------------------+
//! Test Anfang !
//+-----------------------------------------------------------------------------+
if(propSheet.DoModal()==IDOK)//propSheet.m_Page3.DoModal()==IDOK
{
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
}
//+-----------------------------------------------------------------------------+
//! Test Ende !
//+-----------------------------------------------------------------------------+
Könntest du mir sagen wo ich hier fehler mache...
Ich mach jetzt dasgleiche was du sagst oder hab ich wieder was vergessen...
Ich weiß ich nerve dich aber sorry..Danke im Voraus für die Unterstützung
langsam wird man gaga mit deinen Variablen, ersetz mal bitte in der Ini das so
C/C++ Code:
m_bDatum = m_pDoc->bWert; //Variablen einlesen
C/C++ Code:
m_bDatum = m_pDoc->bWert; //Variablen einlesen
C/C++ Code:
m_bDatum = m_pDoc->bWert; //Variablen einlesen
dasw gleiche dann nur umgekehrt in der OnOK() und die zeile
C/C++ Code:
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
C/C++ Code:
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
C/C++ Code:
propSheet.m_Page3.bWert=propSheet.m_Page3.m_bDatum; //zurücklesen wenn IDOK ansonsten bleibt dein gemerkter Wert erhalten
kannste ersatzlos löschen. Du solltest schon selbst mal sehn das du mit deinen Variablen klar kommst denn wenn du da nicht durch siehst, dann lass es lieber und befass dich noch mal mit den grundlagen, denn du solltest schon selbst durchsehen welche variable wo was macht.
Wir haben jetzt eigentlich nichts weiter gemacht als die Membervariable in der OnInit mit dem Wert aus dem Doc zu setzen und bei OnOK den gesetzten wieder zurück in die Doc zu schreiben wo der dann sicher ist.
Geh noch mal in dich und versuch das zu verstehen was du hier so stumpf abschreibst, denn wenn du das nicht verstehst wirst du beim nächsten problem gleich wieder fragen müssen. was dann wieder die gleiche oder ne ähnliche frage ist.
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.