1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

VB 2010 Express: diverse Fragen

Discussion in 'Programmieren' started by Soxx, Jan 3, 2011.

Thread Status:
Not open for further replies.
  1. Soxx

    Soxx Byte

    danke dir ;)

    aber es ist wieder ne neue frage aufgetaucht :D

    lassen sich eingaben auch zB in einer Exeltabelle speichern?

    also im sinne von

    TextBox -> in ExcelTabelle speichern -> in ComboBox laden


    Warum ich nach excel frage?

    da es dort mehrere spalten gibt und nicht in der ComboBox Stehen soll was in der TextBox stand sprich


    Code:
    ComboBox1.Text = "PC-Welt.de" 'TextBox1
    Process.Start("www.pcwelt.de/forum")'TextBox2
    
    Dies soll aber in getrenten TextBoxen eingegeben werden

    wäre super wenn das gehen würde (andere speichermöglichkeit auch gern)

    Lg
    Soxx


    PS: ich weiß dass das auch mit TextDatein geht wäre mir aber etwas unübersichtlich
     
  2. VB-Coder

    VB-Coder Megabyte

    Ich würde einfach mit zweidimensionalen Arrays arbeiten. Diese kann man auch in eine Datei abspeichern.

    zum Thema Arrays findest du hier eine Hilfe: klick
    wie man diese speichern könnte: klick


    Edit: Da du ständig Fragen zu VB hast, scheinst du dich ja intensiv damit auseinander zu setzen. Ich würde dir ein Buch empfehlen klick Das ist zwar nicht gerade billig, dafür bietet es dir auf Dauer selbst später als Erfahrener Nutzer noch eine Menge. Solltest du dir ernsthaft überlegen.
     
    Last edited: Mar 21, 2011
  3. Soxx

    Soxx Byte

    ersteinmal hoffe ich das ich nicht mit meiner fragerei nerve (klang nämlich so :O)

    zum anderen, das mit den arrays hab ich bislang noch nicht ganz verstanden und das abspeichern noch nicht groß angeguckt.


    Nunja was heißt "intensiv auseinandersetzt" :D
    ich versuche mir das leben mit dem rechner so leicht wie möglich zu machen (nicht das die "dinger" nicht nützlich sind) und das geht nunmal am schnellsten/besten mit selbstgeschriebenen programmen ;)
     
  4. VB-Coder

    VB-Coder Megabyte

    Habe ich mit keiner Silbe erwähnt. Wie heißt es so schön: "ich bin dafür verantwortlich was ich sage - nicht dafür was du verstehst" ;)

    Das mit den Arrays ist eigentlich ganz simpel.
    Du deklarierst die ähnlich wie Variablen. Nur das du zusätzlich mit angibst, wieviel Speicherbereiche (um es vereinfacht auszudrücken) das Teil enthält.

    Du weißt den ganzen also einen Hauptnamen zu. Diesen Hauptnamen kannst du verschiedene Werte zuweißen.

    Ich versuchs dir mal an ein- und zweistelligen Arrays zu erklären.

    Code:
    DIM Meier(4) AS STRING
    Würde jetzt bewirken, das ein Array mit dem Namen Meier erstellt wird.
    Dem Namen meier können nun 4 Einträge zugeordnet werden.

    Jetzt könnte ich dem Array Meier die Vornamen der Meier's als Werte zuweißen.

    Code:
    Meier(1) = "Klaus"
    Meier(2) = "Petra"
    Meier(3) = "Markus"
    Meier(4) = "Jenni"
    
    Diese könnte ich nun auch wieder ausgeben lassen.
    Z.B. so:

    Code:
    MsgBox("Herr Meier heißt mit Vornamen: " & Meier(1))
    MsgBox("Frau Meier heißt mit Vornamen: " & Meier(2))
    MsgBox("Das erste Kind heißt mit Vornamen: " & Meier(3))
    MsgBox("Das zweite Kind heißt mit Vornamen: " & Meier(4))
    
    Nun könnte ich aber auch sagen ich brauche noch weitere "Felder" um z.B. das Alter der jeweiligen Person mit anzugeben.

    Also mache ich daraus einfach ein zweidimmensionales Array.

    Code:
    DIM Meier(4,2) AS String 
    Dann könnte ich dem ganzen weitere Werte zuweißen. Hier also das Alter.

    Code:
    Meier(1, 2) = "45"
    Meier(2, 2) = "41"
    Meier(3, 2) = "18"
    Meier(4, 2) = "14"
    
    Was ich natürlich wie oben auch wieder ausgeben könnte. In Kombination mit obigen Beispiel, sähe das ganze dann also wie folgt aus:

    Code:
    Dim Meier(4, 2) As String
            Meier(1, 1) = "Klaus"
            Meier(2, 1) = "Petra"
            Meier(3, 1) = "Markus"
            Meier(4, 1) = "Jenni"
            Meier(1, 2) = "45"
            Meier(2, 2) = "41"
            Meier(3, 2) = "18"
            Meier(4, 2) = "14"
    
            MsgBox("Herr Meier heißt mit Vornamen: " & Meier(1, 1) & " " & "Er ist: " & Meier(1, 2) & " " & "Jahre alt")
            MsgBox("Frau Meier heißt mit Vornamen: " & Meier(2, 1) & " " & "Sie ist: " & Meier(2, 2) & " " & "Jahre alt")
            MsgBox("Das erste Kind heißt mit Vornamen: " & Meier(3, 1) & " " & "Er ist: " & Meier(3, 2) & " " & "Jahre alt")
            MsgBox("Das zweite Kind heißt mit Vornamen: " & Meier(4, 1) & " " & "Sie ist: " & Meier(4, 2) & " " & "Jahre alt")
        
    
    Das ist auch schon das ganze Geheimnis hinter den Arrays.
     
  5. Soxx

    Soxx Byte

    erst einmal danke für das echt übersichtliche tut ;) habs jetzt einigermaßen verstanden aber würd es doch auf eine mir mehr verständliche art und weise machen, hoffe dass das funktioniert :P

    hab soweit alles fertig für das programm aber es hängt hier und dort noch =/

    wo es nicht funktiniert steht ganz klug '*funktioniert nicht* drüber hab schon bei der ausgabe einiges rumprobiert aber ständig passt was nicht >.< :

    Code:
    Imports System.IO
    
    Public Class Form1
    
        'benötigt:
        '2x TextBox // 4x Button // 2x ListBox
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ListBox2.Visible = False
        End Sub
    
        'Inhalt der TextBox an die jeweilige ListBox übergeben
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ListBox1.Items.Add(TextBox1.Text)
            ListBox2.Items.Add(TextBox2.Text)
        End Sub
    
    
        '*Funktioniert nicht*
        'Befehl ausführen
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            'ist in Listbox1 ein Wert(Name) ausgewählt dann soll
            'der in Listbox2 beinhaltete befehl ausgeführt werden 
            '( process.start() // wert und befehl an gleicher position ) 
        End Sub
    
    
    
        '*Funktioniert nicht*
        'laden
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Dim config() As String = IO.File.ReadAllLines("C:\Programme\ListBox-Test.txt")
            ListBox1.Text = config(0)
            ListBox2.Text = config(1)
        End Sub
    
        '*Funktioniert nicht*
        'speichern
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim config As StreamWriter = My.Computer.FileSystem.OpenTextFileWriter("C:\Programme\ListBox-Test.txt", False)
            config.WriteLine(ListBox1.Text)
            config.WriteLine(ListBox2.Text)
            config.Close()
        End Sub
    End Class
    
    
    hope you can help me =/


    Lg
    Soxx
     
  6. VB-Coder

    VB-Coder Megabyte

    Ich habs anstatt mit Listboxen einfach mit Comboboxen gemacht.

    Das speichern funktioniert nicht - aber ich bin auch total übermüdet und sehe meinen Fehler gerade nicht. Ich korregier das die Tage noch - eventuell findest du den Fehler ja auch selbst.

    Code:
    Imports System.IO
    Public Class Form1
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If TextBox1.Text > " " And TextBox2.Text > " " Then
                ComboBox1.Items.Add(TextBox1.Text)
                ComboBox2.Items.Add(TextBox2.Text)
                TextBox1.Text = ""
                TextBox2.Text = ""
                TextBox2.Enabled = False
            End If
        End Sub
    
        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
            Dim auswahl As String = ComboBox1.SelectedIndex
            ComboBox2.SelectedIndex = auswahl
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            ComboBox1.DropDownStyle = ComboBoxStyle.DropDownList
            ComboBox2.DropDownStyle = ComboBoxStyle.DropDownList
            TextBox2.Enabled = False
        End Sub
    
        Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
            If TextBox1.Text > " " Then TextBox2.Enabled = True
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            If ComboBox2.SelectedText > " " Then
                Dim befehl As String = ComboBox2.SelectedText
                Process.Start(befehl)
            End If
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Dim b As Integer = ComboBox1.Items.Count
            Dim c As String
            For a = 1 To b
                ComboBox1.SelectedIndex = b - 1
                c = ComboBox1.Text
                My.Computer.FileSystem.WriteAllText("d:\eintrag.txt", c, False)
            Next
    
            Dim tmp As Integer = ComboBox2.Items.Count
            Dim f As String
            For d = 1 To tmp
                ComboBox2.SelectedIndex = d - 1
                f = ComboBox2.Text
                My.Computer.FileSystem.WriteAllText("d:\befehl.txt", f, False)
            Next
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            ComboBox1.Items.Clear()
            ComboBox2.Items.Clear()
            Dim temp As New StreamReader("d:\eintrag.txt")
            Do While temp.Peek() <> -1
                Dim zeile As String = temp.ReadLine
                ComboBox1.Items.Add(zeile)
            Loop
            Dim temp1 As New StreamReader("d:\befehl.txt")
            Do While temp1.Peek() <> -1
                Dim zeile As String = temp1.ReadLine
                ComboBox2.Items.Add(zeile)
            Loop
        End Sub
    End Class
    
    
    PS: Die Befehle und Einträge werden je in einer separaten Textdatei gespeichert. Die Pfade dazu musst du noch anpassen. Wie gesagt, bis aufs speichern geht alles. Auch das einlesen geht. Hatte die Textfiles per Hand erstellt und das getestet.
     
  7. Soxx

    Soxx Byte

    ahhh danke dir Coder,
    es hat mir auch im bezug auf die ListBoxen weiter geholfen :)

    nur noch ein problem

    wie übergeb ich alle enthaltenen Items einer ListBox an eine TextBox(Multiline) ??


    Lg
     
  8. VB-Coder

    VB-Coder Megabyte

    So bekommst du die Einträge alle aus der Listbox in eine Multiline Textbox. Wobei sich mir der Sinn des ganzen nicht offenbart.
    Code:
    Dim x As Integer = ListBox1.Items.Count - 1
            For i = 0 To x
                TextBox1.Text = TextBox1.Text & ListBox1.Items(i) & vbCrLf
            Next
    
    Muss ich den Code von oben noch anpassen, oder hat sich das mitlerweile erledigt ?
     
  9. Soxx

    Soxx Byte

    also das was ich vor hatte mit den Listbox.Items an die TextBox zu übergeben und das ganze zu speichern hat nich ganz geklappt ;)

    und deinen code musste nicht unbedingt anpassen.


    Nun aber zu etwas anderem:
    Habe in einer anderen Computer-Zeitschrift(kA ob Name gestatten ist deswegen so) ein Programm für XP/Vista gefunden welches wie bei Win7 vorgegebene Bilder nach einer bestimmten zeit als Desktop-Hintergrund anzeigt.

    Da mir die Zeiten(Min. 1std) zu lang sind und das ganze stark nach Visual Basic aussieht würde ich gern ein solches programm "selbst" entwickeln.

    Das einzige was mir dazu fehlt ist der befehl ausgesuchte bilder als desktopbild anzuzeigen.


    Hoffe mir kann jemand helfen

    Lg
    Soxx

    PS: Hoffe ihr hattet ein schönes wochenende
     
  10. VB-Coder

    VB-Coder Megabyte

    Einfach mal wirklich langsam in ein Buch investieren würde sicherlich was bringen. Oder wenn man dafür zu knausrig ist, sich ein entsprechendes Buch ausleihen, oder notfalls eine Suchmaschine benutzen.

    Langsam kommt es mir hier so vor, als wärst du einfach nur zu faul dich mal selbst zu bemühen. Ich hab das jetzt mal getestet und nur zum Spass (denn ich wusste auch vorher wie man es realisieren kann), den Suchbegriff "VB Desktopbild" bei Google eingegeben. Ich musste bei den ersten gelisteten Ergebnissen keine zwei Minuten lesen um eine brauchbare Antwort zu erhalten.
     
  11. Soxx

    Soxx Byte

    Zum buch:
    Da ich grad noch meine 10. Klasse mache und geld etwas rar ist, siehts im mom etwas schlecht aus aber ab september werd ich auf jeden fall in das von dir bereits gennate bch investieren.
    Desweiteren hab ich ein Buch als download gefunden, zwar VB 2005 aber da dürfete sich ja nicht viel geändert haben oder?
    http://www.microsoft.com/germany/msdn/aktuell/news/microsoftvisualbasic2005dasentwicklerbuch.mspx
    Hier mal der link. weiß nicht ob du das kennst aber lernen kann mandaraus doch sicher einiges oder?

    "Nur zu Faul" hmmm faul, eher zeitmangel
    aber sorry für die ständigen, teils dummen fragen

    werd demnächst bissel mehr googlen

    darf ich mich den trotzdem bei fragen weiterhin hier melden bzw falls ich die beispiele dort nicht verstehen sollte?

    Lg
    Soxx
     
  12. chipchap

    chipchap Ganzes Gigabyte

    Ich würde erst 'mal etwas in "Rechtschreibprüfung" und Brain 1.0 investieren.
    Deine Eigeninitiative tendiert gegen minus Unendlich.
    Ein einigermaßen gutes Buch kann man vom nächsten Geburtstag finanzieren - wenn man sich wirklich für das Thema interessiert.

    Die halbgaren Rumpfuschereien bringen gar nichts, auch keine neuen Fähigkeiten.
    Wenn Du wirklich etwas lernen willst, kauf Dir den Löffelmann:
    http://www.amazon.de/Microsoft-Visua...4160677&sr=1-1 . .

    Etwas exklusiver, aber leicht verständlich und sehr methodisch.
    Hatte ich Dir schon in #2 empfohen ... .

    Und hier gilt nach wie vor: je teurer, je besser.
     
  13. Soxx

    Soxx Byte

    Ja chipchap das mit dem geburtstag stimmt schon, der ist aber erst anfang oktober.....
     
  14. VB-Coder

    VB-Coder Megabyte

    Ich weiß ja nicht wie es bei dir aussieht, aber hier gibts in jedem noch so kleinen Kuhdorf eine Stadtbücherei / Bibliothek. Da kann man Bücher kostenlos ausleihen. Und um es vorweg zu nehmen... ja die haben in der Regel auch alle Bücher zum Thema VB. Zumindest hab ich noch keine Stadtbücherei gesehen die sowas nicht hatte.


    http://openbook.galileocomputing.de/einstieg_vb_2010/
    http://openbook.galileocomputing.de/visualbasic_2008/
    http://openbook.galileocomputing.de/einstieg_vb_2008/


    Von dem VB2005 Buch würde ich die Finger lassen. Damit gewöhnst du dir wahrscheinlich nur alte Techniken an, die du später nur mühevoll bis garnicht wieder los wirst.




    Es gibt alleine seit VB 2008 soviele Neuerungen... LINQ, WPF, .NET Framework 3.5, vereinfachte Unterstützung für diverse Systemzugriffe (Registry, PC-Komponenten etc)






    Aber nochmal zu dem Thema Bücher kaufen zurük:

    Es gibt bei Amazon die Möglichkeit sich Wunschlisten anzulegen. Die Links zu den Wunschlisten kann man dann perfekt per Email an Freunde, Verwandte und Bekannte weiterleiten. Alternativ kann man die Wunschlisten auch öffentlich zugänglich machen. Mit etwas Glück findet sich ein anonymer "Spender".

    Das aber nurmal so als Tipp am Rande.
     
  15. Soxx

    Soxx Byte

    ja ne Bücherei besitzen wir auch, werd übermorgen mal vorbeigucken und mal suchen(morgen keine zeit -> ausflug mit der klasse)
    Und von dem VB 2005 Buch lass ich dann mal lieber die finger.

    Macht es Sinn mehrere Bücher zu Visual Basic zu lesen oder eher nicht?

    Das mit der Amazon-Wunschliste kannte ich noch garnicht. Hab mich allerdings auch noch nicht viel damit beschäftigt.


    Um nochmal auf das Thema Desktophintergrund wechseln zu kommen:
    Habe mir jetzt einen funktionierenden Code "gebastelt" welcher das Bild in der Registry ändert. Das einzige Problem es wird nicht angezeigt.
    Unter den Anzeigeeigenschaften-> Desktop wird es aber aufgeführt.
    Habe es zwar bislang nicht mit einem Neustart probiert aber glaube nicht dass das helfen könnte.

    Lg Soxx
     
  16. chipchap

    chipchap Ganzes Gigabyte

    Ein guter Rat:
    Hör auf in der Registry rumzupfuschen, wenn Du nicht weißt, was Du tust.
    Das zerlegt man Windows weit schneller, "als wie man denkt".
     
  17. Soxx

    Soxx Byte

    ja, chipchap, ich weiß das man sich mit rumpfuschen windows zerlegen kann.

    Hier mal der komplette code:
    Code:
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Button1.Text = "Bild Importieren"
            Button2.Text = "Desktop ändern"
            ListBox1.Text = ""
            Button2.Enabled = False
            Label1.Text = ""
            Button3.Text = "Liste speichern"
        End Sub
    
        'Bild auswahl und an Picturebox/Listbox übergeben
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    
            OpenFileDialog1.Filter = ("JPG-Grafiken (*.JPG)|*.JPG|BMP-Grafiken (*.BMP)|*.BMP")
            OpenFileDialog1.ShowDialog()
    
            If OpenFileDialog1.FileName > "" Then
                PictureBox1.Load(OpenFileDialog1.FileName)
                ListBox1.Items.Add(PictureBox1.ImageLocation)
                Button2.Enabled = True
                Label1.Text = "Anleitung" & vbLf & "" & vbLf & "Um die Bilder in" & vbLf & "Originalgröße zu sehen," & vbLf & "klcke einmal auf " & vbLf & "die Vorschau"
            End If
        End Sub
    
        'Bild an Desktop Übergeben
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            My.Computer.Registry.SetValue("HKEY_CURRENT_USER\Control Panel\Desktop", "WallPaper", PictureBox1.ImageLocation)
        End Sub
    
        'Bild in Original größe ansehen
        Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
            Form2.Show()
            'Public Class Form2
            'Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'PictureBox1.Image = Form1.PictureBox1.Image
            'Me.Size = PictureBox1.Image.Size
            'PictureBox1.Size = Me.Size
            'End Sub
            'End Class
        End Sub
    
        'Bild aus der Listbox laden
        Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            PictureBox1.ImageLocation = ListBox1.SelectedItem
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            'ListBox Items speichern
        End Sub
    End Class
    
    ich hab keine ahnung wo der fehler ist, bei der bildübergabe
     
  18. chipchap

    chipchap Ganzes Gigabyte

    Dann mach schön weiter so ... :wink:.
     
Thread Status:
Not open for further replies.

Share This Page