none
Bilder Speichern ??????? RRS feed

  • Frage

  • Hallo,

    ich habe zwei Forms und  möchte auf der Form2 ein Bild mit einem Klick auf die PBox einfügen und einem weiteren Klick wieder entfernen.

    Wenn ich das mache klappt es auch,aber wenn ich das Programm beende und später wieder laufen lasse,sind die Bilder wieder weg.

    Wie kann ich die Bilder Speichern,so wie ich sie brauche.(entweder Sichtbar oder nicht Sichtbar.sollten auch so bleiben,auch wenn ich das Prog.beendet habe.).

    Wer Hilft einem Anfänger ????

     

    Für die mühe schon im voraus vielen Dank.

    Gruß Klaus

    Sonntag, 13. April 2008 04:55

Antworten

  • Resources? Bitte nicht. Verwerfe diese Idee. Das gibt nur eine aufgeblähte Anwendung. Ich würde einfach die Bilder im Dateisystem speichern. Und dann eine XML Datei erstellen mit den Daten deiner Münzen (wenn da welche da sein sollten) und den zugehören Bildern. Diese XML Datei kannst du dann beim Beenden der Anwendung schreiben und beim starten wieder laden.

    Du musst eben eine Klasse schaffen mit der du deinen Datenbestand verwaltest, wo der Bestand dann in einem passenden Typ (die Klasse dazu solltest du selbst erstellen) als Array oder noch besser Collection / Liste gespeichert wird. Dann kannst du das ganze Recht leicht laden und speichern. Schau dich mal um nach XMLTextReader, XMLTextWriter System.Collections ODER System.List(of <T>).

    Alternativ kannst du das ganze natürlich auch in einer Datenbank speichern.  

    Dienstag, 15. April 2008 15:36
  • Die Lösung ist schon sehr einfach (wie ich finde).
    Du musst dich nur mal etwas mit den XML Funktionen und den Listen in .net auseinandersetzen.
    Das jetzt im Forum zu erklären würde den Rahmen sprengen. Das wurde schon an vielen Stellen im Inetnet gut erklärt.
    Das hier für die Listen: http://msdn2.microsoft.com/en-us/library/6sh2ey19.aspx
    Das für den XML.XMLTextReader: http://msdn2.microsoft.com/en-us/library/system.xml.xmltextreader.aspx
    Das für den XML.XMLTextWriter: http://msdn2.microsoft.com/en-us/library/system.xml.xmltextwriter.aspx
    Vielleicht hiflt dir das ja schon weiter.
    Sonntag, 20. April 2008 09:20
  •  

    Du kannst dir z.B. eine Prozedur schreiben, die dann beim schließen des Programmes ausgeführt wird:

     

    Code Snippet

    Sub save_image_state()

    If .Image <> Nothing then

    If not File.Exists(.Name) then

    File.create(.Name)

    End if

    End If

    'usw...

    End Sub

     

     

    Das ganze machst du dann für jede Picture-Box.

     

    Beim Start fügst du dann noch diese Prozedur ein:

    Code Snippet

     

    Sub load_image_state()

    If File.Exists(<deine-PictureBox>.Name) then

    <deine-PictureBox>.Image = <Der Pfad zu deinem Image in den Ressources???>

    End if

    'usw...

    End Sub

     

     

    MfG Hendrik Sokolowsi

     

     

     

    Mittwoch, 23. April 2008 06:18

Alle Antworten

  • Was meinst du mit einfügen? Kommt das Bild aus der Windows Zwischenablage?
    Das ist logisch, dass die Bilder beim nächsten Start nicht mehr da sind. Du musst der Software schon "beibringen", dass sie beim beenden abspeichern soll (wie auch immer du das löst), welche Bilder am ende angezeigt wurden und, dass sie diese Bilder dann auch beim Starten der Anwendung wieder läd.

    Sonntag, 13. April 2008 14:43
  • Hallo S_A_S,

    Danke für die Antwort.

    Also die Bilder habe ich in den Resources gespeichert.

    Ich bin Münzsammler und dementsprechend die Münze die ich Besitze,möcht ein Bild durch einen klick auf PictureBox einfüge.Oder mit einem weiteren klick auf die PBox wieder entfernen kann.(Falls ich die Münze wieder verkaufe)

    Wie gesagt ich bin Anfänger und möchte auch kein Profi werden.

    Kannst Du mir sagen wie das geht?

    Ich habe schon viel versucht,aber ich glaube ich bin noch so weit.

     

    Hast du eine lösung für mich???

     

    Gruß Klaus

    Sonntag, 13. April 2008 14:54
  • Resources? Bitte nicht. Verwerfe diese Idee. Das gibt nur eine aufgeblähte Anwendung. Ich würde einfach die Bilder im Dateisystem speichern. Und dann eine XML Datei erstellen mit den Daten deiner Münzen (wenn da welche da sein sollten) und den zugehören Bildern. Diese XML Datei kannst du dann beim Beenden der Anwendung schreiben und beim starten wieder laden.

    Du musst eben eine Klasse schaffen mit der du deinen Datenbestand verwaltest, wo der Bestand dann in einem passenden Typ (die Klasse dazu solltest du selbst erstellen) als Array oder noch besser Collection / Liste gespeichert wird. Dann kannst du das ganze Recht leicht laden und speichern. Schau dich mal um nach XMLTextReader, XMLTextWriter System.Collections ODER System.List(of <T>).

    Alternativ kannst du das ganze natürlich auch in einer Datenbank speichern.  

    Dienstag, 15. April 2008 15:36
  • Hallo S_A_S,

    ich bedanke mich für deine Antwort.

    So wie du das beschrieben hast,hört sich das für jemanden der sich mit VB auskennt bestimmt logisch an,aber ich bin Anfänger und habe keine Ahnung von Datenbanken und XML Dateien.

    Gibt es keine einfachere Lösung???

     

    Gruß Klaus

    Samstag, 19. April 2008 06:41
  • Die Lösung ist schon sehr einfach (wie ich finde).
    Du musst dich nur mal etwas mit den XML Funktionen und den Listen in .net auseinandersetzen.
    Das jetzt im Forum zu erklären würde den Rahmen sprengen. Das wurde schon an vielen Stellen im Inetnet gut erklärt.
    Das hier für die Listen: http://msdn2.microsoft.com/en-us/library/6sh2ey19.aspx
    Das für den XML.XMLTextReader: http://msdn2.microsoft.com/en-us/library/system.xml.xmltextreader.aspx
    Das für den XML.XMLTextWriter: http://msdn2.microsoft.com/en-us/library/system.xml.xmltextwriter.aspx
    Vielleicht hiflt dir das ja schon weiter.
    Sonntag, 20. April 2008 09:20
  •  

    Du kannst dir z.B. eine Prozedur schreiben, die dann beim schließen des Programmes ausgeführt wird:

     

    Code Snippet

    Sub save_image_state()

    If .Image <> Nothing then

    If not File.Exists(.Name) then

    File.create(.Name)

    End if

    End If

    'usw...

    End Sub

     

     

    Das ganze machst du dann für jede Picture-Box.

     

    Beim Start fügst du dann noch diese Prozedur ein:

    Code Snippet

     

    Sub load_image_state()

    If File.Exists(<deine-PictureBox>.Name) then

    <deine-PictureBox>.Image = <Der Pfad zu deinem Image in den Ressources???>

    End if

    'usw...

    End Sub

     

     

    MfG Hendrik Sokolowsi

     

     

     

    Mittwoch, 23. April 2008 06:18