| DoEvents |
| |
| |
| Private Sub cmd_print_Click() | |
| Me.Hide | Startformular wegblenden |
| frm_Warten.Show | Hinweistext ES WIRD GEDRUCKT einblenden |
| frm_Warten.Refresh | Anzeige aktualisieren |
| Warten | die Prozedur "Warten" in Module1 aufrufen |
| frm_Warten.Hide | Nach Abarbeitung den Hinweis wieder ausblenden |
| Start.Show | |
| End Sub | |
| |
| Private Sub cmd_Quit_Click() | |
| End | |
| End Sub | |
| |
| Sub Warten() | |
| Dim i& | |
| For i = 1 To 5000000 | |
| DoEvents | |
| Next i | Funktion zum Erzeugen des runden Fensters |
| End Sub | siehe Seite 516. |
| |
| Private Sub DrawClock() | Zeiger zeichnen |
| Static last_time As Date | |
| Dim cx As Single, cy As Single, num As Single | |
| Dim radius As Single, theta As Single | |
| If last_time = Now Then Exit Sub | |
| last_time = Now | |
| picClock.Cls | |
| cx = picClock.ScaleWidth / 2 | Zeiger Horizontalachse |
| cy = picClock.ScaleHeight / 2 | Zeiger Vertikalachse |
| Stunden | |
| num = 5 * (DatePart("h", last_time) + DatePart("n", last_time) / 60 + DatePart("s", last_time) / 3600) |
| theta = MinutesToRadians(num) | |
| radius = picClock.ScaleWidth * 0.25 | Länge Stundenzeiger |
| picClock.DrawWidth = 3 | |
| picClock.Line (cx, cy)-Step(radius * Cos(theta), -radius * Sin(theta)) |
| Minuten | |
| num = DatePart("n", last_time) | |
| theta = MinutesToRadians(num) | |
| radius = picClock.ScaleWidth * 0.35 | Länge Minutenzeiger |
| picClock.DrawWidth = 2 | |
| picClock.Line (cx, cy)-Step(radius * Cos(theta), -radius * Sin(theta)) |
| Sekunden | |
| num = DatePart("s", last_time) | |
| theta = MinutesToRadians(num) | |
| radius = picClock.ScaleWidth * 0.4 | Länge Sekundenzeiger |
| picClock.DrawWidth = 1 | |
| picClock.Line (cx, cy)-Step(radius * Cos(theta), -radius * Sin(theta)) |
| End Sub | |
| |
| Private Sub DrawFace() | Minutenkreis zeichnen |
| Dim r1 As Single, r2 As Single, r3 As Single | |
| Dim cx As Single, cy As Single, i As Integer | |
| Dim theta As Single | |
| picClock.AutoRedraw = True | |
| cx = picClock.ScaleWidth / 2 | Minutenkreis Horizantalachse |
| cy = picClock.ScaleHeight / 2 | Minutenkreis Vertikalachse |
| r1 = picClock.ScaleWidth * 0.45 | Minutenkreis (alle Steps) |
| r2 = picClock.ScaleWidth * 0.4 | Minutenkreis (Steps 1 bis 4) |
| r3 = picClock.ScaleWidth * 0.35 | Minutenkreis (5-er Step) |
| For i = 1 To 60 | |
| theta = MinutesToRadians(i) | |
| If i Mod 5 = 0 Then | |
| picClock.Line (cx + r1 * Cos(theta), cy + r1 * Sin(theta))-(cx + r3 * Cos(theta), cy + r3 * Sin(theta)) |
| Else |
| picClock.Line (cx + r1 * Cos(theta), cy + r1 * Sin(theta))-(cx + r2 * Cos(theta), cy + r2 * Sin(theta)) |
| End If | |
| Next i | |
| picClock.Picture = picClock.Image | |
| End Sub | |
| |
| Private Function MinutesToRadians(ByVal num As Single) As Single |
| MinutesToRadians = (15 - num) * 2 * PI / 60 | Uhrzeit berechnen |
| End Function | |
| |
| Private Sub Form_Load() | |
| DrawFace | |
| DrawClock | |
| End Sub | |
| |
| Private Sub Form_Resize() | |
| picClock.Cls | |
| DrawFace | |
| End Sub | |
| |
| Private Sub picClock_Paint() | |
| DrawClock | |
| End Sub | |
| |
| Private Sub tmrClock_Timer() | |
| DrawClock | |
| End Sub | |
| |