VB 5/6-Tipp 0307: FlexGrid-Demo
von Daniel Klatt
Beschreibung
Tolles Beispiel, welches umfangreich darlegt welche Methoden und Ereignisse dem FlexGrid so zur Verfügung stehen. Angefangen mit den verschiedensten Einfärbemöglichkeiten, bis zu allen nur erdenklichen Ausrichtungsarten und einem Mouseover-SetFocus Event
Schwierigkeitsgrad: | Verwendete API-Aufrufe: keine | Download: |
'Dieser Quellcode stammt von http://www.activevb.de 'und kann frei verwendet werden. Für eventuelle Schäden 'wird nicht gehaftet. 'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum. 'Ansonsten viel Spaß und Erfolg mit diesem Source! '------------- Anfang Projektdatei Projekt1.vbp ------------- ' Die Komponente 'Microsoft Common Dialog Control 6.0 (SP3) (COMDLG32.OCX)' wird benötigt. ' Die Komponente 'Microsoft FlexGrid Control 6.0 (msflxgrd.ocx)' wird benötigt. '--------- Anfang Formular "Form1" alias Form1.frm --------- ' Steuerelement: Kontrollkästchen-Steuerelement "Check3" ' Steuerelement: Flexible Tabelle "MSHFlexGrid1" ' Steuerelement: Kombinationsliste "Combo5" ' Steuerelement: Kontrollkästchen-Steuerelement "Check2" ' Steuerelement: Schaltfläche "Command15" ' Steuerelement: Schaltfläche "Command13" ' Steuerelement: Kombinationsliste "Combo4" ' Steuerelement: Kombinationsliste "Combo3" ' Steuerelement: Kombinationsliste "Combo1" ' Steuerelement: Kontrollkästchen-Steuerelement "Check1" ' Steuerelement: Schaltfläche "Command12" ' Steuerelement: Schaltfläche "Command11" ' Steuerelement: Schaltfläche "Command9" ' Steuerelement: Schaltfläche "Command10" ' Steuerelement: Schaltfläche "Command14" ' Steuerelement: Schaltfläche "Command8" ' Steuerelement: Schaltfläche "Command5" ' Steuerelement: Schaltfläche "Command6" ' Steuerelement: Schaltfläche "Command7" ' Steuerelement: Standarddialog-Steuerelement "CommonDialog1" ' Steuerelement: Textfeld "Text4" ' Steuerelement: Schaltfläche "Command4" ' Steuerelement: Textfeld "Text3" ' Steuerelement: Schaltfläche "Command3" ' Steuerelement: Textfeld "Text2" ' Steuerelement: Schaltfläche "Command2" ' Steuerelement: Textfeld "Text1" ' Steuerelement: Schaltfläche "Command1" ' Steuerelement: Beschriftungsfeld "Label5" ' Steuerelement: Beschriftungsfeld "Label4" ' Steuerelement: Beschriftungsfeld "Label3" ' Steuerelement: Beschriftungsfeld "Label1" 'Autor: Daniel Klatt 'E-Mail: danielklatt@hotmail.com Option Explicit Private Sub Check1_Click() If Check1.Value = 1 Then 'Wenn True dann wird durch klicken auf die Überschrift die 'gesamte Spalte oder Zeile ausgewählt. MSHFlexGrid1.AllowBigSelection = True Else MSHFlexGrid1.AllowBigSelection = False End If End Sub Private Sub Check2_Click() If Check2.Value = 1 Then 'Wenn True dann wird das Gird 3D dargestellt. MSHFlexGrid1.Appearance = flex3D Else 'bei False flach MSHFlexGrid1.Appearance = flexFlat End If End Sub Private Sub Combo1_Click() 'Gibt an ob die Spalten- bzw. Zeilenbreite mit der 'Maus verändert werden kann MSHFlexGrid1.AllowUserResizing = Combo1.ListIndex End Sub Private Sub Combo3_Click() 'Legt die Ausrichtung des Textes in den Spalzen bzw Zeile nfest MSHFlexGrid1.ColAlignment(MSHFlexGrid1.Col) = Combo3.ListIndex End Sub Private Sub Combo4_Click() 'Legt fest, wie Das Gitternetz im Gird gezeichnet werden soll MSHFlexGrid1.GridLines = Combo4.ListIndex End Sub Private Sub Combo5_Click() 'Legt fest, wie die Festen Zellen gezeichnet werden sollen MSHFlexGrid1.GridLinesFixed = Combo5.ListIndex End Sub Private Sub Command1_Click() 'Legt die Anzahl der Spalten fest MSHFlexGrid1.Cols = Text1.Text End Sub Private Sub Command2_Click() 'Legt die Anzahl der Anzahl der Zeilen MSHFlexGrid1.Rows = Text2.Text End Sub Private Sub Command3_Click() Dim n As Integer 'Legt die Spaltenbreite fest For n = 0 To MSHFlexGrid1.Cols - 1 MSHFlexGrid1.ColWidth(n) = Text3.Text Next n End Sub Private Sub Command4_Click() Dim n As Integer 'Legt die Zeilenbreite fest For n = 0 To MSHFlexGrid1.Rows - 1 MSHFlexGrid1.RowHeight(n) = Text4.Text Next n End Sub Private Sub Command5_Click() Dim n As Integer, x As Integer, y As Integer Dim aa As String 'Füllt das MSHFlexGrid1 mit Daten For n = 0 To MSHFlexGrid1.Cols - 1 aa = "" For y = 0 To 2 'zufällig Buchstaben erzeugen aa = aa & Chr$(Rnd * 25 + 65) Next y 'Feste Zeile mit Buchstaben füllen MSHFlexGrid1.TextMatrix(0, n) = aa Next n For n = 0 To MSHFlexGrid1.Rows - 1 aa = "" For y = 0 To 2 'zufällig Buchstaben erzeugen aa = aa & Chr$(Rnd * 25 + 65) Next y 'Feste Spalte mit Buchstaben füllen MSHFlexGrid1.TextMatrix(n, 0) = aa Next n For y = 1 To MSHFlexGrid1.Cols - 1 For x = 1 To MSHFlexGrid1.Rows - 1 'Das MSHFlexGrid1 wird zufällig mit Zahlen gefüllt MSHFlexGrid1.TextMatrix(x, y) = Int((50 * Rnd) + 1) Next x Next y End Sub Private Sub Command6_Click() 'Legt die Hintergrundfarbe des Datenbereiches fest MSHFlexGrid1.BackColor = FarbAuswahl End Sub Private Sub Command7_Click() 'Legt die Vordergrundfarbe des Datenbereiches fest MSHFlexGrid1.ForeColor = FarbAuswahl End Sub Private Sub Command8_Click() 'Legt die Hintergrundfarbe der 'Festen Zellen fest MSHFlexGrid1.BackColorFixed = FarbAuswahl End Sub Private Sub Command9_Click() 'Legt die Vordergrundfarbe der Festen Zellen fest MSHFlexGrid1.ForeColorFixed = FarbAuswahl End Sub Private Sub Command10_Click() 'Legt die Hintergrundfarbe der Zellen beim markieren fest MSHFlexGrid1.BackColorSel = FarbAuswahl End Sub Private Sub Command11_Click() 'Legt die Vordergrundfarbe der Zellen beim markieren fest MSHFlexGrid1.ForeColorSel = FarbAuswahl End Sub Private Sub Command12_Click() 'Legt die Hintergrundfarbe der gerade ausgewählten Zelle fest MSHFlexGrid1.CellBackColor = FarbAuswahl End Sub Private Sub Command13_Click() 'Legt die Vordergrundfarbe der gerade ausgewählten Zelle fest MSHFlexGrid1.CellForeColor = FarbAuswahl End Sub Private Sub Command14_Click() 'Legt die Farbe für den Bereich um die Tabelle fest MSHFlexGrid1.BackColorBkg = FarbAuswahl End Sub Private Sub Command15_Click() 'Legt die Farbe des Gitternetzts fest MSHFlexGrid1.GridColor = FarbAuswahl End Sub Private Sub Command16_Click() MSHFlexGrid1.WordWrap = False End Sub Private Sub Form_Load() Call Command1_Click Call Command2_Click Call Command3_Click Call Command4_Click Call Command5_Click End Sub Function FarbAuswahl() As Long Dim temp As Long On Error Goto ErrHandler 'Standard-Dialogfeld Farbauswahl wird durch = Farbauswahl 'aufgerufen. "Abbrechen" auf "True" setzen. Flags Eigenschaft setzen. CommonDialog1.CancelError = True CommonDialog1.Flags = cdlCCRGBInit 'Dialogfeld "Farbe" anzeigen. CommonDialog1.ShowColor temp = CommonDialog1.Color FarbAuswahl = temp Exit Function ErrHandler: 'Benutzer hat auf Abbrechen-Schaltfläche geklickt. Exit Function End Function Private Sub MSHFlexGrid1_MouseMove(Button As Integer, Shift As Integer, _ x As Single, y As Single) Dim Cx As Long, Cy As Long Static LCx As Long, LCy As Long MSHFlexGrid1.SetFocus If Check3.Value = vbChecked Then Cx = MSHFlexGrid1.MouseCol Cy = MSHFlexGrid1.MouseRow If LCx <> Cx Or LCy <> Cy Then If Cx <> 0 And Cy <> 0 Then MSHFlexGrid1.Row = Cy MSHFlexGrid1.Col = Cx End If End If LCx = Cx LCy = Cy End If End Sub '---------- Ende Formular "Form1" alias Form1.frm ---------- '-------------- Ende Projektdatei Projekt1.vbp --------------
Tipp-Kompatibilität:
Windows/VB-Version | Win32s | Win95 | Win98 | WinME | WinNT4 | Win2000 | WinXP |
VB4 | |||||||
VB5 | |||||||
VB6 |
Ihre Meinung
Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.
Archivierte Nutzerkommentare
Klicken Sie diesen Text an, wenn Sie die 2 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.
Kommentar von ff am 27.02.2002 um 17:26
rrrr
Kommentar von Andreas Süß am 10.05.2001 um 15:00
Wie läßt sich ein Grid initialisieren ohne eine Schleife zu schreiben?
(initialize Grid oder so...)