Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

OnInitialUpdate() Attribute initialisieren

Empfohlene Antworten

Veröffentlicht

Guten Tag Allerseits,

ich initialisiere in der OnInitialUpdate-Funktion einige Sachen. Initialisiert werden alle Sachen. Leider popt aber wenn ich diese Formview lade eine Popupmeldung auf mit "Enter an integer". Diese Warnmeldung "Enter an integer" bezieht sich auf das Editfeld. Es erscheint aber die 9 im Editfeld.

Wie bekomme ich diese Popupmeldung weg?

void CScanObjectView::OnInitialUpdate()

{

CView::OnInitialUpdate();

UpdateData(true);

m_editfeld_value = (int)9;

UpdateData(false);

//// Initialisiere andere Sachen...

// ...

// ...

}

Vielen Dank im Voraus.

Gruß Carsten

Stimmt, das habe ich total übersehen. Wenn ich UpdateData(true)- wegnehme dann zeigt er leider nicht mehr die Zahl im Editfeld an. Hm... was kann ich den jetzt machen. Der Konstruktor CScanObjectView() wird nicht aufgerufen, da ich OnIntialUpdate() überschreibe, sonst hätte ich das Editfeld mit dem Konstruktor initialisieren können.

ScanObjectView::CScanObjectView()

: CFormView(CScanObjectView::IDD)

, m_membufs(7) // Works only when I not overwrite the OnInitialUpdate()-Function

{

}

void CScanObjectView::DoDataExchange(CDataExchange* pDX)

{

CFormView::DoDataExchange(pDX);

DDX_Text(pDX, IDC_MEMBUFS, m_membufs);

...

}

void CScanObjectView::OnInitialUpdate()

{

CView::OnInitialUpdate();

m_membufs = (int)8; // Don't work because UpdateData is not true

//CScanObjectView();

// Other initialization

// ....

}

Kann man das Editfeld vielleicht anders setzen?

//CEdit *z_Membufs = (CEdit *)GetDlgItem(IDC_MEMBUFS); //z_Membufs->...

Der Konstruktor CScanObjectView() wird nicht aufgerufen, da ich OnIntialUpdate() überschreibe,
Das ist Quatsch. Der Konstruktor wird immer aufgerufen. Allenfalls machst du das, was dort passiert, an anderer Stelle rückgängig.

sonst hätte ich das Editfeld mit dem Konstruktor initialisieren können.
Zum Zeitpunkt des Konstruktoraufrufs existiert das Eingabefeld noch gar nicht. Du kannst dort höchstens die mit dem Eingabefeld verknüpfte Variable initialisieren.

Hast du in OnInitialUpdate etwa auch das UpdateData(FALSE) weggelassen? Das sollte schon drinbleiben.

Danke Dir. Jetzt funktioniert es *freu*

void CScanObjectView::OnInitialUpdate()

{

CView::OnInitialUpdate();

UpdateData(false); // Übernimmt den im Konstruktor gesetzten Wert

...

...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.