Maskenabfrage
-
Huhu
Ich hab hier eine Benutzermaske, bei der man halt die üblichen Einstellungen machen kann (Anlegen,Löschen etc). Mit dabei sind auch die CHECK Kästen, wo ich auswählen kann, worauf der Benutzer Zugriff hat und natürlich der Speicher Button.Jetzt hab ich folgendes vor: Der Speicherbutton ist per Defaultwert von mir in der Maske deaktiviert. Wenn ich jetzt aber eine Änderung tätige, soll er das erkennen und den Button aktivieren. Da das ja aber jeder Zeit passieren kann, das ich die Attribute vom Benutzer ändere, hab ich mir folgendes gedacht:
Ich nehme einen Timer, der jede Sekunde überprüft, ob eine Änderung vorgenommen wurde oder nicht. Ich würde dann jede Sekunde ein UpdateData(TRUE) durchführen und diese Werte dann mit den vorherigen Werten vergleichen und wenn es Abweichungen gibt, den Button auf aktiv setzen.
Wäre ja alles theoretisch möglich; nur meine bedenken bei der Sache ist, dass es auf diesem wege (wegen der sekündlichen Abfrage per Timer) dass Programm ganz schön in die Knie zwingen wird.
Hat vielleicht jemand noch eine andere Idee?
-
OnSelectionChange????
-
OnKillfocus?
OnChange (Edits)?
OnSelchange (Combobox)?
OnClick? und die anderen alle?
-
also mit dem Timer hab ich das jetzt mal probiert
geht eigentlich ganz gut ist aber massig an quelltexthabt ihr vielleicht nen Thread oder so parakt, wo eure Möglichkeiten dokumentiert sind? hab damit noch net gearbeitet
wäre lieb
-
Also meine Lösung ist auch nicht gerade wenig Quellcode, viele kleine Funktionen mit ihren Einträgen in Header und MessageMap. Das läppert sich.
Schätzungsweise mind. 10 Zeilen pro Control.Achja: Dafür werden die Funktionen nur dann ausgeführt, wenn sich wirklich was ändert oder wenn der User das Control verlässt - und nicht wie der Timer dauernd, auch wenn nix passiert.
Zeig doch sonst mal deinen Code, vielleicht kann man da ja kürzen.
-
die genannten Funktionen findest du im Klassenassi in den Message-Maps deiner Controls, einfach mal anclicken und durch probieren was passiert, dazu vielleicht dann noch in die MSDN schauen und dann solltest du das schon hin bekommen.
(hab es auch geschafft!)