Zum Inhalt springen

VC++ Eingabefelder


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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:

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...