Bilder in Datagridview

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von menorca.

    Bilder in Datagridview

    Habe hier leider kein passendes Ergebnis gefunden, wie kann ich untenstehenden Code anpassen das die GridView mir die Bilder anzeigt?
    möglichst in 20x20 Größe automatisch an Zelle anpassen. Der Pfad steht in der DB

    Brainfuck-Quellcode

    1. Try
    2. Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    3. "Data Source=D:\ETMSW\ETM_Daten\ETM.mdb"
    4. Dim myConnection As OleDbConnection = New OleDbConnection
    5. myConnection.ConnectionString = ConnString
    6. myConnection.Open()
    7. '---------------------------------
    8. '//Tab Lagerbestand
    9. '---------------------------------
    10. Dim da As OleDbDataAdapter = New OleDbDataAdapter("SELECT tblArtikel.ArtID, " & _
    11. "tblArtikel.ArtNummer,tblArtikel.ArtBezeichnung, " & _
    12. "tblArtikel.ArtZusatz,tblLagerbestaende.LaBesMenge AS Bestand, " & _
    13. "tblLagerbestaende.LaPlaID AS Lager,tblArtikel.ArtAngelegt, tblArtikel.Menge," & _
    14. "tblArtikel.ArtMindestbestand AS [Min]," & _
    15. "tblArtikel.ArtMaxbestand AS [Max], " & _
    16. "tblArtikel.ArtMeldebestand AS Meldebestand, tblArtikel.ArtAbbildungPfad,tblArtikel.StandID " & _
    17. "FROM tblArtikel LEFT JOIN tblLagerbestaende " & _
    18. "ON tblArtikel.ArtID = tblLagerbestaende.ArtID;", ConnString)
    19. dS = New DataSet
    20. da.Fill(dS, "tempLagerbestand")
    21. dBind.DataSource = dS
    22. DataGridView1.DataSource = dS
    23. dBind.DataMember = dS.Tables(0).ToString()
    24. DataGridView1.DataSource = dBind
    25. Dim img As New DataGridViewImageColumn()
    26. Dim inImg As Image = Image.FromFile("ArtAbbildungPfad") 'Bildpfad ?
    27. img.Image = inImg
    28. DataGridView1.Columns.Add(img)
    29. img.HeaderText = "Image"
    30. img.Name = "img"
    31. Me.Cursor = Cursors.Default
    32. Catch ex As Exception
    33. End Try
    Ohne alles gelesen zu haben: DataGridViewImageColumn ist die Spalte, nicht aber die Zelle.
    Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Danke Rod für deine Antwort.

    doch mit dem Code aus dem Link Verweis komme ich nicht klar, habe ein wenig angepasst.

    was muss ich ändern Bitte.

    Brainfuck-Quellcode

    1. Try
    2. cmd.Connection = con
    3. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    4. "Data Source=D:\ETMSW\ETM_Daten\ETMKopie.mdb"
    5. '---------------------------------
    6. '//Tab Lagerbestand
    7. '---------------------------------
    8. cmd.Connection = con
    9. cmd.CommandText = ("SELECT tblArtikel.ArtID, " & _
    10. "tblArtikel.ArtNummer,tblArtikel.ArtBezeichnung, " & _
    11. "tblArtikel.ArtZusatz,tblLagerbestaende.LaBesMenge AS Bestand, " & _
    12. "tblLagerbestaende.LaPlaID AS Lager,tblArtikel.ArtAngelegt, tblArtikel.Menge," & _
    13. "tblArtikel.ArtMindestbestand," & _
    14. "tblArtikel.ArtMaxbestand, " & _
    15. "tblArtikel.ArtMeldebestand, " & _
    16. "tblArtikel.ArtAbbildungPfad," & _
    17. "tblArtikel.StandID " & _
    18. "FROM tblArtikel LEFT JOIN tblLagerbestaende " & _
    19. "ON tblArtikel.ArtID = tblLagerbestaende.ArtID")
    20. With DataGridView1
    21. .Columns.Clear()
    22. .Rows.Clear()
    23. End With
    24. With DataGridView1.Columns
    25. .Add("0", "ArtID")
    26. .Add("1", "Artikel")
    27. .Add("2", "Bezeichnung")
    28. .Add("3", "MIN")
    29. .Add("4", "MAX")
    30. .Add("5", "Bestand")
    31. .Add("6", "Bild")
    32. End With
    33. con.Open()
    34. reader = cmd.ExecuteReader()
    35. Do While reader.Read()
    36. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    37. reader("ArtNummer").ToString(), _
    38. reader("ArtBezeichnung").ToString(), _
    39. reader("ArtMindestbestand").ToString(), _
    40. reader("ArtMaxbestand").ToString(), _
    41. reader("Bestand").ToString(), _
    42. reader(Image.FromFile("ArtAbbildungPfad").ToString))
    43. Loop
    44. con.Close()
    45. Me.Cursor = Cursors.Default
    46. Catch ex As Exception
    47. ''DirectCast(ex,System.IO.FileNotFoundException) {"ArtAbbildungPfad":Nothing}
    48. End Try
    Bilder
    • Unbenannt.GIF

      39,2 kB, 801×337, 228 mal angesehen
    @menorca
    Die vorherige Exception war "Artabildungspfad" nicht gefunden.
    Speicher diesen Pfad mal in einer Variablen und schau dir den Wert an, indem du einen Halteunkt(F9) setzt und dann einmal F10drückst. Danach kannst du mit dem Cursor auf die Stringvariable halten und der Wert wird angezeigt.
    Desweiteren musst du auch ein ImageColumn hinzufügen
    msdn.microsoft.com/de-de/libra…agridviewimagecolumn.aspx

    VB.NET-Quellcode

    1. Dim i As New DataGridViewImageColumn()
    2. i.Name = "Image"
    3. i.HeaderText = "Bild"
    4. i.Width = 100
    5. DataGridView1.Columns.Add(i)
    wo soll ich das einbauen?

    OK habe es so gemacht, Ergebnis sieht nun so aus, wie geht es weiter?

    Brainfuck-Quellcode

    1. Dim i As New DataGridViewImageColumn()
    2. i.Name = "Image"
    3. i.HeaderText = "Bild"
    4. i.Width = 100
    5. 'Me.Cursor = Cursors.WaitCursor
    6. 'Try
    7. cmd.Connection = con
    8. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    9. "Data Source=D:\ETMSW\ETM_Daten\ETMKopie.mdb"
    10. '---------------------------------
    11. '//Tab Lagerbestand
    12. '---------------------------------
    13. cmd.Connection = con
    14. cmd.CommandText = ("SELECT tblArtikel.ArtID, " & _
    15. "tblArtikel.ArtNummer,tblArtikel.ArtBezeichnung, " & _
    16. "tblArtikel.ArtZusatz,tblLagerbestaende.LaBesMenge AS Bestand, " & _
    17. "tblLagerbestaende.LaPlaID AS Lager,tblArtikel.ArtAngelegt, tblArtikel.Menge," & _
    18. "tblArtikel.ArtMindestbestand," & _
    19. "tblArtikel.ArtMaxbestand, " & _
    20. "tblArtikel.ArtMeldebestand, " & _
    21. "tblArtikel.ArtAbbildungPfad," & _
    22. "tblArtikel.StandID " & _
    23. "FROM tblArtikel LEFT JOIN tblLagerbestaende " & _
    24. "ON tblArtikel.ArtID = tblLagerbestaende.ArtID")
    25. With DataGridView1
    26. .Columns.Clear()
    27. .Rows.Clear()
    28. End With
    29. With DataGridView1.Columns
    30. .Add("0", "ArtID")
    31. .Add("1", "Artikel")
    32. .Add("2", "Bezeichnung")
    33. .Add("3", "MIN")
    34. .Add("4", "MAX")
    35. .Add("5", "Bestand")
    36. .Add(i)
    37. End With
    38. con.Open()
    39. reader = cmd.ExecuteReader()
    40. Do While reader.Read()
    41. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    42. reader("ArtNummer").ToString(), _
    43. reader("ArtBezeichnung").ToString(), _
    44. reader("ArtMindestbestand").ToString(), _
    45. reader("ArtMaxbestand").ToString(), _
    46. reader("Bestand").ToString(), _
    47. reader(Image.FromFile("ArtAbbildungPfad").ToString))
    48. Loop
    49. con.Close()
    Bilder
    • Unbenannt.GIF

      80,68 kB, 941×404, 197 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „menorca“ ()

    @menorca
    Gib mal ein Beispiel für deinen "ArtAbildungspfad" an. (Setzt einen Haltepunkt)
    Normal sollte das, wenn es der richtige Pfad ist klappen.
    Edit: Gib dir mal deine Query aus und jag sie mal mit einem Datenbankprogramm auf die Datenbank und guck was er dir ausgibt. Dann kannst du ausschließen dass die Qeury falsch ist.

    menorca schrieb:

    VB.NET-Quellcode

    1. reader(Image.FromFile("ArtAbbildungPfad").ToString))
    Was ist das für ein Bild?
    FromFile() erwartet einen vollständigen Pfad.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Bildmaterial

    Danke Rod,

    "ArtAbbildungPfad" ist der Spaltenname dort wurde das Bild mit Pfadangabe gespeichert
    D:\Bildmaterial\SNr6\Bild1.jpg

    wenn ich die Zeile rausnehme sieht das Ergebnis aus wie im Anhang aber auch kein Bild

    reader(Image.FromFile("ArtAbbildungPfad").ToString))
    Bilder
    • Unbenannt.GIF

      88,24 kB, 966×414, 178 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „menorca“ () aus folgendem Grund: Ergänzt

    Habe es insoweit gelöst das im GridView Bilder aus der Pfadangabe geladen werden.
    das funktioniert auch, jetzt brauche ich noch eine Möglichkeit das die Bilder ordentlich angezeigt werden in der x / y 20x20 angezeigt werden.
    Habe es schon mit Zoom probiert doch die Bilder sind recht groß, sie müssten also für die Zelle entsprechend kleiner gemacht werden.
    und wenn kein Bild vorhanden, dann eine alternative.
    wer hilft da weiter?

    Quellcode

    1. cmd.Connection = con
    2. cmd.CommandText = ("SELECT tblArtikel.ArtID, " & _
    3. "tblArtikel.ArtNummer," & _
    4. "tblArtikel.ArtBezeichnung, " & _
    5. "tblArtikel.ArtZusatz," & _
    6. "tblLagerbestaende.LaBesMenge, " & _
    7. "tblLagerbestaende.LaPlaID," & _
    8. "tblArtikel.ArtAbbildungPfad," & _
    9. "tblArtikel.ArtAngelegt, " & _
    10. "tblArtikel.Menge," & _
    11. "tblArtikel.ArtMindestbestand," & _
    12. "tblArtikel.ArtMaxbestand, " & _
    13. "tblArtikel.ArtMeldebestand, " & _
    14. "tblArtikel.StandID " & _
    15. "FROM tblArtikel LEFT JOIN tblLagerbestaende " & _
    16. "ON tblArtikel.ArtID = tblLagerbestaende.ArtID")
    17. Dim img As New DataGridViewImageColumn()
    18. img.HeaderText = "Image"
    19. img.Name = "img"
    20. With DataGridView1
    21. .Columns.Clear()
    22. .Rows.Clear()
    23. End With
    24. With DataGridView1.Columns
    25. .Add("0", "ArtID")
    26. .Add("1", "Artikel")
    27. .Add("2", "Bezeichnung")
    28. .Add("3", "MIN")
    29. .Add("4", "MAX")
    30. .Add("5", "Bestand")
    31. .Add(img)
    32. End With
    33. con.Open()
    34. reader = cmd.ExecuteReader()
    35. Do While reader.Read()
    36. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    37. reader("ArtNummer").ToString(), _
    38. reader("ArtBezeichnung").ToString(), _
    39. reader("ArtMindestbestand").ToString(), _
    40. reader("ArtMaxbestand").ToString(), _
    41. reader("LaBesMenge").ToString(), _
    42. Image.FromFile(reader("ArtAbbildungPfad").ToString))
    43. Loop
    44. con.Close()
    Danke, eines fehlt noch

    was wenn kein Bild gefunden, oder kein Pfad in der DB steht

    so geht nicht!
    wer hat die Lösung?

    Quellcode

    1. Do While reader.Read()
    2. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    3. reader("ArtNummer").ToString(), _
    4. reader("ArtBezeichnung").ToString(), _
    5. reader("ArtMindestbestand").ToString(), _
    6. reader("ArtMaxbestand").ToString(), _
    7. reader("LaBesMenge").ToString(), _
    8. If Not IsDBNull(reader("ArtAbbildungPfad").ToString() AndAlso IO.File.Exists(reader("ArtAbbildungPfad").ToString)) Then
    9. Image.FromFile(reader("ArtAbbildungPfad").ToString)
    10. else
    11. End If
    12. Loop

    soweit geschafft

    Hi zusammen,

    mein Ergebnis kann sich sehen lassen.
    Ein Problem beschäftigt mich jedoch noch, wenn kein Bild (No Image) abfangen, bzw. noch kein Bildpfad gespeichert wurde
    wie geht man damit um??

    Spoiler anzeigen

    Brainfuck-Quellcode

    1. Dim con As New OleDb.OleDbConnection
    2. Dim cmd As New OleDb.OleDbCommand
    3. Dim reader As OleDb.OleDbDataReader
    4. Try
    5. cmd.Connection = con
    6. con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
    7. "Data Source=D:\ETMSW\ETM_Daten\ETMKopie.mdb"
    8. '---------------------------------
    9. '//Tab Lagerbestand
    10. '---------------------------------
    11. cmd.Connection = con
    12. cmd.CommandText = ("SELECT tblArtikel.ArtID, " & _
    13. "tblArtikel.ArtNummer," & _
    14. "tblArtikel.ArtBezeichnung, " & _
    15. "tblArtikel.ArtZusatz," & _
    16. "tblLagerbestaende.LaBesMenge, " & _
    17. "tblLagerbestaende.LaPlaID," & _
    18. "tblArtikel.ArtAbbildungPfad," & _
    19. "tblArtikel.ArtAngelegt, " & _
    20. "tblArtikel.Menge," & _
    21. "tblArtikel.ArtMindestbestand," & _
    22. "tblArtikel.ArtMaxbestand, " & _
    23. "tblArtikel.ArtMeldebestand, " & _
    24. "tblArtikel.StandID " & _
    25. "FROM tblArtikel LEFT JOIN tblLagerbestaende " & _
    26. "ON tblArtikel.ArtID = tblLagerbestaende.ArtID")
    27. Dim img As New DataGridViewImageColumn()
    28. img.HeaderText = "Bild"
    29. img.Name = "img"
    30. img.Width = 50
    31. img.ImageLayout = DataGridViewImageCellLayout.Zoom
    32. img.DefaultCellStyle.NullValue = Nothing
    33. With DataGridView1
    34. .Columns.Clear()
    35. .Rows.Clear()
    36. End With
    37. With DataGridView1.Columns
    38. .Add("0", "ArtID")
    39. .Add("1", "Artikel")
    40. .Add("2", "Bezeichnung")
    41. .Add("3", "MIN")
    42. .Add("4", "MAX")
    43. .Add("5", "Bestand")
    44. .Add(img)
    45. End With
    46. con.Open()
    47. reader = cmd.ExecuteReader()
    48. Do While reader.Read()
    49. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    50. reader("ArtNummer").ToString(), _
    51. reader("ArtBezeichnung").ToString(), _
    52. reader("ArtMindestbestand").ToString(), _
    53. reader("ArtMaxbestand").ToString(), _
    54. reader("LaBesMenge").ToString(), _
    55. Resize_Image(New Bitmap(Image.FromFile(reader("ArtAbbildungPfad")))))
    56. Loop
    57. con.Close()
    58. InitializeDataGridView()
    59. Catch ex As Exception
    60. ':::::::
    61. End Try
    62. End Sub
    63. ':::
    64. Private Function Resize_Image(ByVal _obmp As Bitmap) As Bitmap
    65. Dim _nbmp As New Bitmap(100, 100)
    66. Dim _obmp_width As Single = _obmp.Width
    67. Dim _obmp_height As Single = _obmp.Height
    68. Dim _obmp_factor As Single = _obmp_width / _obmp_height
    69. Do While _obmp_width > 150
    70. _obmp_width -= _obmp_width / 100
    71. _obmp_height = _obmp_width / _obmp_factor
    72. Loop
    73. Do While _obmp_height > 150
    74. _obmp_width -= _obmp_width / 100
    75. _obmp_height = _obmp_width / _obmp_factor
    76. Loop
    77. Dim _xcenter As Integer = CInt((100 - _obmp_width) / 2)
    78. Dim _ycenter As Integer = CInt((100 - _obmp_height) / 2)
    79. Using g As Graphics = Graphics.FromImage(_nbmp)
    80. g.InterpolationMode = Drawing2D.InterpolationMode.Bilinear
    81. g.SmoothingMode = Drawing2D.SmoothingMode.HighQuality
    82. g.DrawImage(_obmp, _xcenter, _ycenter, _obmp_width, _obmp_height)
    83. End Using
    84. Return _nbmp
    85. End Function
    86. ':::
    87. Private Sub InitializeDataGridView()
    88. With DataGridView1.DefaultCellStyle
    89. .BackColor = Color.LightGray
    90. .ForeColor = Color.Black
    91. .Font = New Font("Arial", 12, FontStyle.Regular)
    92. .Format = "d"
    93. End With
    94. With DataGridView1.AlternatingRowsDefaultCellStyle
    95. .BackColor = Color.LightSlateGray
    96. .ForeColor = Color.Black
    97. .Font = New Font("Arial", 12, FontStyle.Regular)
    98. .Format = "d"
    99. End With
    100. '---
    101. With DataGridView1
    102. .AutoSizeRowsMode = _
    103. DataGridViewAutoSizeRowsMode.AllCells
    104. .AutoSizeColumnsMode = _
    105. DataGridViewAutoSizeColumnsMode.AllCells
    106. .ColumnHeadersBorderStyle = _
    107. DataGridViewHeaderBorderStyle.Raised
    108. .CellBorderStyle = _
    109. DataGridViewCellBorderStyle.Single
    110. .GridColor = SystemColors.ActiveBorder
    111. .RowHeadersVisible = False
    112. .SelectionMode = _
    113. DataGridViewSelectionMode.FullRowSelect
    114. .MultiSelect = True
    115. .BackgroundColor = Color.LightGray
    116. End With
    117. End Sub
    Bilder
    • Unbenannt.GIF

      110,15 kB, 651×648, 198 mal angesehen
    @menorca
    Ich würde mir dafür eine kleine Funktion schreiben, die ein paar Bedingungen enthält.

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim bildpfad As String = "reader..."
    5. If IsBildPfad(bildpfad) = True Then
    6. 'zuweisen
    7. End If
    8. End Sub
    9. Public Function IsBildPfad(ByVal input As String) As Boolean
    10. If input.Length() > 1 AndAlso input.Contains("/") Then
    11. Return True
    12. End If
    13. Return False
    14. End Function
    15. End Class


    Wenn es keine URL ist, dann vielleicht ein eigenes Error-Bild einbinden, oder halt entsprechend mit einer Meldung an den User reagieren.
    Danke für deine außerordentliche Unterstützung, evtl. kannst du mir sagen wo ich es im Code unterbringe, so wie ich es geschrieben haben werden nun keine Bilder mehr angezeigt

    Quellcode

    1. Dim bildpfad As String = "ArtAbbildungPfad"
    2. If IsBildPfad(bildpfad) = True Then
    3. 'zuweisen
    4. Resize_Image(New Bitmap(Image.FromFile(reader("ArtAbbildungPfad"))))
    5. End If
    6. Do While reader.Read()
    7. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    8. reader("ArtNummer").ToString(), _
    9. reader("ArtBezeichnung").ToString(), _
    10. reader("ArtMindestbestand").ToString(), _
    11. reader("ArtMaxbestand").ToString(), _
    12. reader("LaBesMenge").ToString)
    13. Loop
    14. con.Close()

    menorca schrieb:

    werden nun keine Bilder mehr angezeigt
    Mach Dir ein kleines Testprojekt, in dem Du ausschließlich diesen Effekt untersuchst.
    Wenn es läuft - speichere es unter einem aussagekräftigen Namen ab und Du weißt, wo Du beim nächsten Mal nachsehen musst.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    ich habe doch nun einiges in eigen Regie hinbekommen, bis auf Image vorhanden dann sonst ...
    lass mich doch nicht hängen Rod, ich bin schon in einer Testumgebung und habe das obrige abgefahren
    Meldung Zeile / Spalte nicht gefunden. Da ich sie ja entfernt hatte.

    menorca schrieb:

    lass mich doch nicht hängen Rod
    Lass ich nicht, genau so mach ich es.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    IMG in DatagridView wenn vorhanden

    Schade, evtl. kann mir jemand sagen wie es geht. Ich bekomme es leider Kopf mäßig nicht hin
    wie ich die Funktion in meinem Code nutzen kann so das die Img Spalte auch ohne Bild angehängt wird
    habe 30 Datensätze denen ein Bild zugeordnet wird, dh. 10 sind noch ohne Bild das GridView soll aber auch die Datensätze ohne Bild anzeigen

    '.............
    habe es so im Code getestet, jetzt zeigt er mir (kein Foto) für jeden Datensatz an

    Quellcode

    1. Do While reader.Read()
    2. Dim bildpfad As String = reader("ArtAbbildungPfad")
    3. If IsBildPfad(bildpfad) = True Then
    4. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    5. reader("ArtNummer").ToString(), _
    6. reader("ArtBezeichnung").ToString(), _
    7. reader("ArtMindestbestand").ToString(), _
    8. reader("ArtMaxbestand").ToString(), _
    9. reader("LaBesMenge").ToString(), _
    10. Resize_Image(New Bitmap(Image.FromFile(reader("ArtAbbildungPfad")))))
    11. Else
    12. DataGridView1.Rows.Add(reader("ArtID").ToString(), _
    13. reader("ArtNummer").ToString(), _
    14. reader("ArtBezeichnung").ToString(), _
    15. reader("ArtMindestbestand").ToString(), _
    16. reader("ArtMaxbestand").ToString(), _
    17. reader("LaBesMenge").ToString(), _
    18. Resize_Image(New Bitmap(Image.FromFile(Application.StartupPath & "\Kein Foto.jpg"))))
    19. End If
    20. Loop

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „menorca“ () aus folgendem Grund: Versuch