| Koordinaten: CurrentX, CurrentY |
| |
| |
| Private Sub Form_Load() | |
| Me.Show | |
| With Combo1 | |
| .AddItem "Januar" | Füllen der ComboBox Januar bis Dezember... |
| .ListIndex = 0 | Index beginnt bei Null |
| End With | |
| Me.Move (Screen.Width - Me.Width) / 3, _ | Formular in Bildschirmmitte |
| (Screen.Height - Me.Height) / 3 | |
| Call drawBarGraph | Aufruf der Hauptroutine |
| End Sub | |
| |
| Private Sub drawBarGraph() | |
| Dim i%, mon$, oldFontSize% | |
| Me.Scale (-10, 120)-(130, -10) | eigenes Koordinatensystem definieren |
| oldFontSize = Me.FontSize | alte Schriftgröße retten |
| Me.Line (0, 0)-(0, 100) | vertikale Achse zeichnen |
| Me.Line (0, 0)-(120, 0) | horizontale Achse zeichnen |
| For i = 100 To 0 Step -10 | Erste Schleife: |
| Me.Line (-2, i)-(0, i) | zeichnet vertikale Skala |
| Me.CurrentX = -8 | setzt Cursorposition |
| Me.CurrentY = Me.CurrentY + 1.5 | |
| Me.Print i | zeichnet Beschriftung für vertikale Achse |
| Next i | |
| For i = 10 To 120 Step 10 | Zweite Schleife: |
| Me.CurrentX = i - 8 | setzt Druckposition der Monate |
| Me.CurrentY = -2 | |
| mon = Left$(Combo1.List((i - 10) \ 10), 3) | holt erste drei Zeichen der Monate aus ComboBox |
| Me.Print mon | zeichnet Beschriftung für horizontale Achse |
| Next i | |
| Me.CurrentX = 35 | Horizontale Druckposition des Titels |
| Me.CurrentY = 107 | Vertikale Druckposition |
| Me.FontSize = 12 | Titelschrift vergrößern |
| Me.Print "V e r k a u f s z a h l e n " & Year(Date) | Titel drucken |
| Me.FontSize = oldFontSize | alte Schriftgröße restaurieren |
| End Sub | |
| |
| Private Sub Form_Paint() | |
| Call drawBarGraph | Aufruf der Hauptroutine |
| Call balken | |
| End Sub | |
| |
| Private Sub Form_Resize() | Wenn sich die FormGröße ändert, werden alle Balken |
| Refresh | (außer dem aktuellen Wert aus ComboBox / TextBox, |
| Call zeichnen | gelöscht |
| Call balken | |
| If Me.Width < 8000 Then Me.Width = 8500 | |
| If Me.Height < 5000 Then Me.Height = 5500 | |
| End Sub | |
| |
| Private Sub zeichnen() | AutoRedraw = True für das Formular ist voreingestellt |
| Me.Cls | |
| Me.AutoRedraw = True | |
| Call drawBarGraph | Aufruf der Hauptroutine |
| Call balken | |
| End Sub | |
| |
| Private Sub Text1_Change() | Wenn Stückzahl in Textbox geändert wird, dann: |
| Call balken | Subprogramm aufrufen |
| End Sub | |
| |
| Private Sub balken() | |
| Dim x!, y!, i% | |
| x = Combo1.ListIndex * 10 + 1 | Monat übernehmen |
| y = Val(Text1.Text) | Stückzahl übernehmen |
| Me.Line (x, 100)-(x + 9, 1), vbButtonFace, BF | alten Balken löschen |
| | |
| If (y <= 100) And (y > 0) Then | |
| Me.Line (x, y)-(x + 9, 1), vbRed, BF | neuen Balken zeichnen |
| End If | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| Private Sub Combo1_Click() | Monat in ComboBox auswählen, dann Fokus an die |
| With Text1 | TextBox zurückgeben |
| .SelStart = 0 | |
| .SelLength = Len(.Text) | |
| .SetFocus | |
| End With | |
| End Sub | |
| |