17.7.3 Projekt 1 – Direkte Anzeige von Daten in der GridView

Im ersten vorgestellten Projekt ist die Anzahl der Spalten in der GridView bekannt, konstant und beträgt 5. Die per Zufall generierten Daten (Datentypen: String, Float, Date und Boolean) werden ohne Zwischenspeicherung sofort zeilenweise – Spalte für Spalte – in die Gitterzellen eingefügt und in der Gitteransicht angezeigt. Nachdem alle Daten eingetragen worden sind, was auch bei den wenigen Daten eine gewisse Zeit benötigt, wechselt die Anzeige nach einer Sekunde in die 1. Datenzeile. Hier finden Sie den (fast) vollständigen Quelltext:

[1]' Gambas class file
[2]
[3]PUBLIC SUB Form_Open()
[4]  FMain.Center
[5]  FMain.Border = 1  
[6]  SetGridProperty()
[7]  GridView1.Rows.Count = 0 ' Es wird KEIN Daten-Gitter angezeigt
[8]END ' Form_Open()
[9]
[10]PRIVATE SUB SetGridProperty()
[11]  GridView1.Header = GridView1.Horizontal ' Kopfzeile wird angezeigt
[12]  GridView1.Mode = Select.Single ' Die selektierte Zeile wird farbig markiert
[13]  GridView1.Columns.Count = 5 ' Anzahl der Spalten
[14]  GridView1.Columns[0].Resizable = FALSE ' Die erste Spalte-Breite ist fix
[15]  GridView1.Columns[0].Width = 40
[16]  GridView1.Columns[0].Title = "N"  
[17]  GridView1.Columns[1].Width = 90
[18]  GridView1.Columns[1].Title = "Zahl"
[19]  GridView1.Columns[2].Width = 110
[20]  GridView1.Columns[2].Title = "Wahrheitswert"
[21]  GridView1.Columns[3].Width = 110
[22]  ...
[23]END ' SetGridProperty()
[24]
[25]PRIVATE SUB GenerateAndDisplayGridValues()
[26]  DIM iCount AS Integer  
[27]  DIM aNames AS String[] = ["Hans", "Maria", "Peter", "Anna", "Robert", "Stefan", "Emma", "Yvonne"]
[28]  
[29]  FMain.Mouse = Mouse.Wait
[30]  FOR iCount = 1 TO 200 ' Datensätze mit Zufallsdaten
[31]      INC GridView1.Rows.Count ' Anzeige der bereits generierten Datensätze/Zeilen in der GridView
[32]      GridView1.MoveTo(GridView1.Rows.Count - 1, 0) ' Optional
[33]      GridView1[iCount - 1, 0].Text = Str(GridView1.Rows.Count)
[34]      GridView1[iCount - 1, 1].Text = Str(Round(Rnd(-100, 100), -3))
[35]      GridView1[iCount - 1, 2].Text = Str(CBool(Round(Rnd()))) 
[36]      GridView1[iCount - 1, 3].Text = aNames[CInt(Rnd(0, aNames.Count))]
[37]      GridView1[iCount - 1, 4].Text = Format$(Date(Rnd(0, 2200) + CFloat(Now())), "dd.mm.yyyy")
[38]  NEXT ' iCount  
[39]  FMain.Mouse = Mouse.Default
[40]END ' CreateGridValues()
[41]
[42]PUBLIC SUB btnGridViewShow_Click()  
[43]  GridView1.SetFocus
[44]  GridView1.Clear
[45]  GridView1.Rows.Count = 0
[46]  GenerateAndDisplayGridValues()
[47]  WAIT 1
[48]  GridView1.MoveTo(0, 0) ' Sprung in die Daten-Zelle[0,0]
[49]END ' GridViewShow_Click()
[50]
[51]PUBLIC SUB btnClose_Click()
[52]  FMain.Close
[53]END ' Close

AnzeigeDirekt

Abbildung 17.7.3.1: Direkte Anzeige von Daten in der GridView – ohne Zwischenspeicherung

Die Gittereigenschaften können bereits zum Programmstart mit SetGridProperty (Zeilen 33 bis 37) gesetzt werden, da sich diese zur Laufzeit nicht verändern. Wenn die Zeilenzahl der GridView größer als Null ist, dann werden die mit den Daten gefüllten Zellen sichtbar (Zeile 31).

Probieren Sie auch in der Zeile 30 andere Werte für die Anzahl der zu erzeugenden Zeilen in der Gitteransicht aus und vergleichen Sie die Zeiten, bis das Daten-Gitter mit dieser Methode der Sofortanzeige vollständig gefüllt ist.

Für die Navigation in der GridView haben Sie mindestens diese Möglichkeiten:

17.7.3 Download