Ich habe vielleicht einen etwas unkonventionellen Ansatz, der zumindest für das Kegelbeispiel funktionieren könnte.
Falls effektiv derjenige gewinnt mit den meisten Punkten bzw. Kegeln,
dann könnte man ein zusätzliche (unsichtbare) Spalte für die Summe (Punkte/Kegel) bilden und diese dann sortieren, womit dann auch der Sieger oben landen müsste.
Funktioniert aber nur, wenn die Gesamtpunktzahl den Sieger bestimmt oder sich die Spalten entsprechend gewichten lassen.
ListIconGadget sortieren
- Thorsten1867
- Beiträge: 1360
- Registriert: 04.02.2005 15:40
- Computerausstattung: [Windows 10 x64] [PB V5.7x]
- Wohnort: Kaufbeuren
- Kontaktdaten:
Hallo,
erst noch einmal vielen Dank für die vielen hilfsbereiten User hier im Forum.
Was in VB.NET geht, geht aber sicherlich auch in PureBasic.
Hier der Code in VB für mein Problem:
erst noch einmal vielen Dank für die vielen hilfsbereiten User hier im Forum.
Was in VB.NET geht, geht aber sicherlich auch in PureBasic.
Hier der Code in VB für mein Problem:
Code: Alles auswählen
Public Sub VBTest()
Titel = "XYZ"
Dim dt As DataTable
Dim dr As DataRow
dt = New DataTable("MeineDaten")
dt.Columns.Add(New DataColumn("Ergebnis01", GetType(Integer)))
dt.Columns.Add(New DataColumn("Ergebnis02", GetType(Integer)))
dt.Columns.Add(New DataColumn("Ergebnis03", GetType(Integer)))
dt.Columns.Add(New DataColumn("Ergebnis04", GetType(Integer)))
dt.Columns.Add(New DataColumn("Ergebnis05", GetType(Integer)))
dt.Columns.Add(New DataColumn("Ergebnis06", GetType(Integer)))
dt.Columns.Add(New DataColumn("Ergebnis07", GetType(Integer)))
dt.Columns.Add(New DataColumn("Ergebnis08", GetType(Integer)))
dt.Columns.Add(New DataColumn("Prozent", GetType(Single)))
For i = 1 To k
dr = dt.NewRow
dr(0) = XYZ01(i)
dr(1) = XYZ02(i)
dr(2) = XYZ03(i)
dr(3) = XYZ04(i)
dr(4) = XYZ05(i)
dr(5) = XYZ06(i)
dr(6) = XYZ07(i)
dr(7) = XYZ08(i)
Prozent(i) = XYZ08(i) / YYYY
dr(8) = Prozent(i)
dt.Rows.Add(dr)
Prozent(i) = Prozent(i) * 100
Next
FileClose(7)
dr = dt.NewRow()
dr(0) = DBNull.Value
dr(1) = DBNull.Value
dr(2) = DBNull.Value
dr(3) = DBNull.Value
dr(4) = DBNull.Value
dr(5) = DBNull.Value
dr(6) = DBNull.Value
dr(7) = ZZZZ
dr(8) = 1
dt.Rows.Add(dr)
Dim dv As New DataView(dt)
Dim dc As New DataColumn()
Dim tempstr As String
Dim myGridStyle As DataGridTableStyle = New DataGridTableStyle()
myGridStyle.DataGrid = Me.dg
myGridStyle.MappingName = "MeineDaten"
For Each dc In dv.Table.Columns
tempstr = tempstr + dc.ColumnName + " DESC, "
Dim myDgTbc As DataGridTextBoxColumn = New DataGridTextBoxColumn()
myDgTbc.MappingName = dc.ColumnName
myDgTbc.HeaderText = myDgTbc.MappingName
myDgTbc.NullText = ""
If dc.ColumnName = "Prozent" Then
myDgTbc.Format() = "p"
Dim nfi As NumberFormatInfo = New CultureInfo(System.Threading. _
Thread.CurrentThread.CurrentCulture.ToString(), False).NumberFormat
nfi.PercentDecimalDigits = 4
myDgTbc.FormatInfo = nfi
End If
myDgTbc.Alignment = HorizontalAlignment.Right
myDgTbc.Width = 75.0
myGridStyle.GridColumnStyles.Add(myDgTbc)
Next
tempstr = tempstr.Substring(0, tempstr.Length - 2)
dv.Sort() = tempstr
dg.TableStyles.Add(myGridStyle)
dg.TableStyles("MeineDaten").GridColumnStyles(8).Width = 90
dg.DataSource = dv
dg.Visible = True
dg.Size = New Size(784, 448)
End Sub