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.

VC++ Eingabefelder

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe da folgendes Problem: Es handelt sich um eine Maske mit verschiedenen Eingabefeldern. Nachdem ein Datensatz eingegeben wurde(abgepeichert), soll dieser nicht mehr zu bearbeiten sein. Soll heißen, wenn ich auf den entsprechenden DS

klicke , darf dieser nicht änderbar sein.

Vielleicht hat ja wer von euch eine Idee, wie man das lösen könnte.

THX im vorraus

:D

Hmmm erzaehl doch mal etwas genauer.....was verstehst unter verschiedenen Eingabefeldern?

Nur verschiedene Editboxen, oder auch diverse andere Steuerelemente (Checkboxen, Comboboxen....) ?

....und du willst das wirklich sperren?

Mal ne dumme Frage, aber wieso überträgst du den Inhalt dann nicht einfach?

Es ist wohl einfacher die Daten woanders reinzuschreiben, als alles für die Bearbeitung zu sperren :)

Goos

hi.

na schön, du möchtest also, dass daten z.B. in einem eingabefeld nachträglich nicht mehr verändert werden dürfen.

sicherlich hast du schon einen dialog o.ä., worin sich ein eingabefeld befindet.

1.schritt:

lege für dieses eingabefeld (z.B. IDC_EDIT1) eine membervariable der kategorie control und des typs CEdit an. du kannst diese membervariable z.B. "m_ctlEdit1" nennen.

2.schritt:

du musst dem eingabefeld irgendwie mitteilen, ab wann es für veränderungen gesperrt werden soll. dies kannst du z.B. durch einen button realisieren, den der user nach der eingabe betätigt. es gibt auch andere möglichkeiten.

3.schritt:

füge eine funktion für den button hinzu.

in dieser funktion solltest realisieren, dass das feld auf read-only gesetzt wird.

m_ctlEdit1.SetReadOnly(TRUE); //eingabefeld auf read-only setzen

UpdateData(FALSE) //bildschirmausgabe aktualisieren

ich hoffe, das diese kleine ausführung dir bei deinen problem hilft.

:D

Hi Goos,

es handelt sich um einige Edit-, und um drei Combolistboxen. Das ganze ist ein Buchungsprogramm, in das man halt verschiedene Daten eingibt, die letztendlich halt gebucht werden. Ist dieses einmal geschehen, darf natürlich an den Buchungssätzen nichts mehr verändert werden. Die Datensätze werden in einer Accsesstabelle abgelegt. Es muss praktisch über die Steuerelemente "Nächster/Vorheriger Datensatz" geprüft werden, ob der anzuzeigende Datensatz schonmal abgebucht wurden, oder nicht. Ist dieses der Fall, dürfen die Eingabefelder und Comboboxen ncht beschreibbar sein.

Gruss

Hallo ElBarto82,

das Problem dabei ist, dass SetReadOnly kein Element von CString ist. Alle meine Membervariablen sind dies. Um bei deinem Beispiel zu bleiben, hiesse es dann m_pSet->m_ctlEdit1.

Bei der Vergabe der Membervariablen waren alle Namen der Variablen schon vorgegeben (im Dropdown-Menue "Name der Member-Variablen").

Gruss

:confused:

hi,

es ist richtig, dass die methode SetReadOnly kein element von String ist. die methode SetReadOnly ist aber ein bestandteil von CEdit. versuche doch mal die membervariable nicht vom typ String, sondern vom typ CEdit zu deklarieren. m_ctlEdit1 sollte dies nochmal unterstreichen. ctl = control.

:D

Sauber...,

So weit so gut, danke.

Es ist jetzt noch das Problem, dass man zwar nichts mehr eingeben kann, aber leider auch nicht mehr lesen kann was drinne steht. Das Feld ist halt komplett grau !

Ick freu mir schon.... :)

wie wärs mit :

m_mycontrol.EnableWindow(FALSE);

hi,

das mit SetReadOnly funktioniert. bist du auch sicher, dass du vor der anweisung "m_ctlEdit1.SetReadOnly(TRUE)" auch UpdateData(TRUE) gemacht hast?

natürlich funktioniert es auch mit "EnableWindow(FALSE)". du wirst jedoch einen kleinen schönheitsfehler entdecken. wenn du EnableWindow(FALSE) anwendest, ist das feld und die schrift grau.

wenn du jedoch SetReadOnly(TRUE) verwendest, ist das feld grau und die schrift schwarz.

:D

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.