none
Einstellungen speichern RRS feed

  • Frage

  • Ich bin gerade dabei, ein Programm zu machen, welches Notizen und Termine verwaltet. Das ist eigentlich nicht so schwer, allerdings habe ich da ein Problem: Wenn man z.B. ein Label hat, das die Notiz enthält und dann das Programm schließt und wieder öffnet ist das Label natürlich wieder in der ursprünglichen Form. Das heißt, man hat alle Notizen und Termine eingetragen und die sind dann wieder weg. Wie kann ich diese Dinge speichern?

     

    PS: Bitte schreibt mir leicht verständliche Antworten, denn ich programmiere noch nicht sehr lange.

    Mittwoch, 7. Juli 2010 17:00

Antworten

  • Hallo Adri,

    das Spiel läuft. Ich versuche parallel zu antworten. Das geht ganz einfach mit dem My.Settings Objekt. Eine Weiterentwicklung in.Net des alten .INI Konzeptes. Jedes property eines controls lässt sich mit Hilfe von databinding an eine Anwendungseinstellung verknüpfen. Diese werden in einem Windows Systemordner bei Beenden Deiner Anwendung gespeichert und nach Neustart wieder geladen. Hier die offizielle msdn Doku dazu:

    http://msdn.microsoft.com/de-de/library/25zf0ze8%28VS.80%29.aspx

    Kochrezept von mir:.
    Ein neues Control erzeugen z.B. label2
    1. Wir sind im Formdesigner : Eigenschaften von label2 aufrufen
    2. ganz oben ApplicationSettings + aufklappen propertbinding anklicken
    3. jetzt property auswählen z.B. .Text und wählen Neu
    4. es erscheint "neue Anwendungseinstellung" Scope User,
    5. bei Name den Namen der Anwendungseinstellung festlegen z.B. initText

    Fertig das war es. Zur Kontrolle:

    Unter Projekt --> Eigenschaften --> Einstellungen kannst Du die neue
    Einstellung jetzt sehen. Fertig.


    initText verwenden. Gib mal in dem Code ein My.Settings.
    Der Intellisense zeigt Dir die neue Anwendungseinstellung initText

    Du brauchst nichts weiter programmieren. label2.Text wird automatisch gespeichert und wieder neu aufgerufen. Label2.Text kannst Du im Programm normal benutzen z.B. Label2.Text = "Neu". Das ist dann der neue Wert.

    Ganz einfach

    schöne Grüße Ellen

     

     

     


    Ich benutze/ I'm using VB2008 & VB2010
    Mittwoch, 7. Juli 2010 19:04
  • Hallo,

    Ich bin gerade dabei, ein Programm zu machen, welches Notizen und Termine verwaltet. Das ist eigentlich nicht so schwer, allerdings habe ich da ein Problem: Wenn man z.B. ein Label hat, das die Notiz enthält und dann das Programm schließt und wieder öffnet ist das Label natürlich wieder in der ursprünglichen Form. Das heißt, man hat alle Notizen und Termine eingetragen und die sind dann wieder weg. Wie kann ich diese Dinge speichern?

    wie man diese Dinge speichern möchte, ist eigentlich mit die erste Frage, die man sich beantworten sollte, bevor man sich daran macht ein solches Projekt zu beginnen. Es gibt zig verschiedene Möglichkeiten, dies zu realisieren. Klassisch beispielsweise durch Speicherung in einer Datenbank. Zunächst wäre hier dann die Frage zu beantworten, wie das Datenmodell dahinter aufgebaut sein soll, dann kommen die verschiedensten Variationen von Datenbanksystemen hinzu. Soll es eine Jet Datenbank sein, SQL Compact, SQL Server? Das können wir Dir hier nicht ad hoc beantworten. Dazu wäre es auch interessant zu wissen, wie viele Daten Du speichern möchtest.

    Ellen hat Dir ja bereits gezeigt, wie Du auf ganz einfache Weise den Wert eines Label auf einfache Weise als Benutzereinstellung speicherst. Da stößt Du aber bereits schnell an eine Grenze, denn Du hast ja geschrieben, dass Du Notizen und Termine verwalten möchtest, also mehrere. Auf Basis der Anwendungseinstellungen, kannst Du diese Grenzen etwas verschieben. Indem Du Einstellungen bspw. als Collection definierst. Mit dem komfortablen Designer kannst Du Dir diese dann aber nicht mehr zusammenklicken. Ein Beispiel, habe ich vor kurzem hier gepostet. Nach diesem Muster könntest Du vorgehen, um Deine Termine und Notizen jeweils in solchen Collections in den Anwendungseinstellungen zu speichern.

    Ich persönlich würde aber den Standpunkt vertreten, dass die Anwendungseinstellungen nicht dafür gedacht sind Benutzerdaten zu speichern. Dies sollte separat erfolgen, wie zum Beispiel Eingangs erwähnt, in einer Datenbank, oder was auch noch recht komfortabel ist, via XML Serialisierung in einer XML Datei. Hier definierst Du Dir die Objekte, die Du zum Speichern benötigst und kannst Sie mit den Daten, die der Benutzer eingegeben hat, in eine Datei schreiben lassen, wie beim Anwendungsstart dort wieder herauslesen. Im Programm selber greifst Du immer über die Eigenschaften Deiner Klasse auf die Werte zu.

    Ein Beispiel zur Verwendung von XML Serialisierung hat Elmar hier bereitgestellt.

    Die dort definierte Klasse "GesamtInhalt", wäre bei Dir eine Notiz oder ein Termin, mit den entsprechenden Eigenschaften. Titel und Inhalt für die Notiz, Betreff, StartZeit, EndeZeit und weitere für einen Termin. Nur als grobes Beispiel.

    PS: Bitte schreibt mir leicht verständliche Antworten, denn ich programmiere noch nicht sehr lange.

    Leicht verständlich ist meine Antwort jetzt wohl nicht ausgefallen. Es ist aber auch kein einfaches Thema, wenn man frisch in der Programmierung drin ist. Vielleicht fällt es Dir leichter, wenn Du Dich zunächst einmal mit den Grundlagen vertraut machst. Die Grundlagen können wir Dir hier im Forum nicht vermitteln, das ist auch nicht die Aufgabe der Foren. Die kannst Du am besten über ein Buch erlernen. Ob das nun online oder als gedrucktes Werk erfolgt, ist dabei eine Frage Deiner persönlichen Präferenz. Hier ein Beispiel, das schon einigen den Einstieg erleichtert hat und dazu kostenlos online nachschlagbar ist:

    Galileo OpenBook - Einstieg in Visual Basic 2010
    http://openbook.galileocomputing.de/einstieg_vb_2010/


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Mittwoch, 7. Juli 2010 21:17

Alle Antworten

  • Hallo Adri,

    das Spiel läuft. Ich versuche parallel zu antworten. Das geht ganz einfach mit dem My.Settings Objekt. Eine Weiterentwicklung in.Net des alten .INI Konzeptes. Jedes property eines controls lässt sich mit Hilfe von databinding an eine Anwendungseinstellung verknüpfen. Diese werden in einem Windows Systemordner bei Beenden Deiner Anwendung gespeichert und nach Neustart wieder geladen. Hier die offizielle msdn Doku dazu:

    http://msdn.microsoft.com/de-de/library/25zf0ze8%28VS.80%29.aspx

    Kochrezept von mir:.
    Ein neues Control erzeugen z.B. label2
    1. Wir sind im Formdesigner : Eigenschaften von label2 aufrufen
    2. ganz oben ApplicationSettings + aufklappen propertbinding anklicken
    3. jetzt property auswählen z.B. .Text und wählen Neu
    4. es erscheint "neue Anwendungseinstellung" Scope User,
    5. bei Name den Namen der Anwendungseinstellung festlegen z.B. initText

    Fertig das war es. Zur Kontrolle:

    Unter Projekt --> Eigenschaften --> Einstellungen kannst Du die neue
    Einstellung jetzt sehen. Fertig.


    initText verwenden. Gib mal in dem Code ein My.Settings.
    Der Intellisense zeigt Dir die neue Anwendungseinstellung initText

    Du brauchst nichts weiter programmieren. label2.Text wird automatisch gespeichert und wieder neu aufgerufen. Label2.Text kannst Du im Programm normal benutzen z.B. Label2.Text = "Neu". Das ist dann der neue Wert.

    Ganz einfach

    schöne Grüße Ellen

     

     

     


    Ich benutze/ I'm using VB2008 & VB2010
    Mittwoch, 7. Juli 2010 19:04
  • Hallo,

    Ich bin gerade dabei, ein Programm zu machen, welches Notizen und Termine verwaltet. Das ist eigentlich nicht so schwer, allerdings habe ich da ein Problem: Wenn man z.B. ein Label hat, das die Notiz enthält und dann das Programm schließt und wieder öffnet ist das Label natürlich wieder in der ursprünglichen Form. Das heißt, man hat alle Notizen und Termine eingetragen und die sind dann wieder weg. Wie kann ich diese Dinge speichern?

    wie man diese Dinge speichern möchte, ist eigentlich mit die erste Frage, die man sich beantworten sollte, bevor man sich daran macht ein solches Projekt zu beginnen. Es gibt zig verschiedene Möglichkeiten, dies zu realisieren. Klassisch beispielsweise durch Speicherung in einer Datenbank. Zunächst wäre hier dann die Frage zu beantworten, wie das Datenmodell dahinter aufgebaut sein soll, dann kommen die verschiedensten Variationen von Datenbanksystemen hinzu. Soll es eine Jet Datenbank sein, SQL Compact, SQL Server? Das können wir Dir hier nicht ad hoc beantworten. Dazu wäre es auch interessant zu wissen, wie viele Daten Du speichern möchtest.

    Ellen hat Dir ja bereits gezeigt, wie Du auf ganz einfache Weise den Wert eines Label auf einfache Weise als Benutzereinstellung speicherst. Da stößt Du aber bereits schnell an eine Grenze, denn Du hast ja geschrieben, dass Du Notizen und Termine verwalten möchtest, also mehrere. Auf Basis der Anwendungseinstellungen, kannst Du diese Grenzen etwas verschieben. Indem Du Einstellungen bspw. als Collection definierst. Mit dem komfortablen Designer kannst Du Dir diese dann aber nicht mehr zusammenklicken. Ein Beispiel, habe ich vor kurzem hier gepostet. Nach diesem Muster könntest Du vorgehen, um Deine Termine und Notizen jeweils in solchen Collections in den Anwendungseinstellungen zu speichern.

    Ich persönlich würde aber den Standpunkt vertreten, dass die Anwendungseinstellungen nicht dafür gedacht sind Benutzerdaten zu speichern. Dies sollte separat erfolgen, wie zum Beispiel Eingangs erwähnt, in einer Datenbank, oder was auch noch recht komfortabel ist, via XML Serialisierung in einer XML Datei. Hier definierst Du Dir die Objekte, die Du zum Speichern benötigst und kannst Sie mit den Daten, die der Benutzer eingegeben hat, in eine Datei schreiben lassen, wie beim Anwendungsstart dort wieder herauslesen. Im Programm selber greifst Du immer über die Eigenschaften Deiner Klasse auf die Werte zu.

    Ein Beispiel zur Verwendung von XML Serialisierung hat Elmar hier bereitgestellt.

    Die dort definierte Klasse "GesamtInhalt", wäre bei Dir eine Notiz oder ein Termin, mit den entsprechenden Eigenschaften. Titel und Inhalt für die Notiz, Betreff, StartZeit, EndeZeit und weitere für einen Termin. Nur als grobes Beispiel.

    PS: Bitte schreibt mir leicht verständliche Antworten, denn ich programmiere noch nicht sehr lange.

    Leicht verständlich ist meine Antwort jetzt wohl nicht ausgefallen. Es ist aber auch kein einfaches Thema, wenn man frisch in der Programmierung drin ist. Vielleicht fällt es Dir leichter, wenn Du Dich zunächst einmal mit den Grundlagen vertraut machst. Die Grundlagen können wir Dir hier im Forum nicht vermitteln, das ist auch nicht die Aufgabe der Foren. Die kannst Du am besten über ein Buch erlernen. Ob das nun online oder als gedrucktes Werk erfolgt, ist dabei eine Frage Deiner persönlichen Präferenz. Hier ein Beispiel, das schon einigen den Einstieg erleichtert hat und dazu kostenlos online nachschlagbar ist:

    Galileo OpenBook - Einstieg in Visual Basic 2010
    http://openbook.galileocomputing.de/einstieg_vb_2010/


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Mittwoch, 7. Juli 2010 21:17
  • Hallo Adri234,

    da ich selbst so ein Kandidat bin, der nach wie vor mit INI-Dateien arbeitet hier noch der Hinweis, den dir Ellen ja mit dem Hinweis " ... des alten INI-Konzeptes" gegeben hat.

    Auch wenn es vielleicht am Anfang bequem erscheint und du zu diesem Thema viele Code-Beispiele findest, lass besser die Finger davon. Du musst die Werte und Änderungen immer wieder verändern und ggf. an anderer Stelle neu einlesen. Das ist mühsam und fehlerträchtig. 

    Stefan 


    Liebe Grüße Stefan
    Mittwoch, 7. Juli 2010 21:31
  • Halo Adri,

    Thorsten hat natürlich recht. Wenn das ein Termin- und Notizenverwaltungprogramm werden soll, sollte schon eine Datenbank dahinter sein. Anwendungseinstellungen sind dafür gedacht individuelle Programmeinstellungen wie bspw Hintergrundfarbe, Schriftart oder eine webadresse (uri) zu sichern, so dass diese nach Neustart nicht immer wieder eingegeben werden. müssen.

    Alternativ kann ich Dir diese Lösung empfehlen. Einfache Datenverwaltung:

    http://social.msdn.microsoft.com/Forums/de-DE/dotnetframeworkde/thread/a8b7f3bb-6080-4329-a68f-9dcc8d9f90d9

    schöne Grüße Ellen


    Ich benutze/ I'm using VB2008 & VB2010
    Donnerstag, 8. Juli 2010 09:12
  • Hallo Adri,

    vielleicht hilft dir ja uch das Video oder die komplette Lektion, die sich hinter diesem Link verbirgt. Gegen Ende des Videos wird ein einfaches Beispiel einer Datenbank gegeben.

    http://msdn.microsoft.com/de-de/beginner/bb964633(en-us).aspx


    Liebe Grüße Stefan
    Sonntag, 11. Juli 2010 16:57
  • Hallo Adri234,

    ich gehe davon aus, dass Dir die Antworten weitergeholfen haben. Wenn Du noch Fragen dazu hast, gib uns bitte hier Bescheid.


    Thorsten Dörfler
    Microsoft MVP Visual Basic
    vb-faq.de
    Sonntag, 18. Juli 2010 13:38