Sie müssen nicht in irgendwelche Zusatzcontrol
Trickkisten greifen, um nur mal ein paar Grundformen zu zeichnen und diese farbig
auszufüllen.
Hier reicht es voll und ganz VB-eigene Anweisungen zum zeichnen der Rahmen und eine
API-Funktion zum farbigen ausfüllen zu nutzen.
Circle = zum zeichnen von Kreisen und Ovalen
Line = zum zeichnen von Linien und Rechtecken
Für ein Demoprojekt benötigen wir eine Form und einen CommandButton.
Wir wollen eine kleine Slotmaschine bauen, die die Formen Kreis,Dreieck und Rechteck
zeichnet über API ausmalt und dies dreimal nebeneinander, so das
man die Anzeige bei Bedarf auch auswerten und mit Punkten belegen könnte.
Aber das überlasse ich Ihnen.
Bauen Sie Ihre Form etwas größer, ich füge den Beispielcode aus einer Form ein,
auf der noch analoge Demos enthalten sind, deshalb werden die Objekte relativ weit rechts
oben dargestellt. Ich habe aber keine Lust, daß jetzt erst noch zu modifizieren.
Allgemein/Deklarationen
Private Declare Sub FloodFill Lib "GDI32" (ByVal hDC As Integer, ByVal X As
Integer, ByVal Y As Integer, ByVal Color As Long)
Allgemein/Slot
Function Slot()
Dim wert1 As Integer
'erste Figur ermitteln
Randomize
wert1 = Int((3 * Rnd) + 1)
If wert1 = 1 Then 'Kreis
FillColor = QBColor(10)
Circle (370, 70), 10
FloodFill hDC, 370, 20, &H0&
ElseIf wert1 = 2 Then 'Viereck
FillColor = QBColor(14)
FloodFill hDC, 370, 20, &H0&
Line (360, 60)-(380, 80), , B
ElseIf wert1 = 3 Then 'Dreieck
Line (360, 60)-(380, 60)
Line (360, 60)-(370, 80)
Line (380, 60)-(370, 80)
FillColor = QBColor(11)
FloodFill hDC, 370, 70, &H0&
End If 'zweite Figur ermitteln
wert1 = Int((3 * Rnd) + 1)
If wert1 = 1 Then 'Kreis
FillColor = QBColor(10)
Circle (410, 70), 10
FloodFill hDC, 410, 20, &H0&
ElseIf wert1 = 2 Then 'Viereck
FillColor = QBColor(14)
FloodFill hDC, 410, 20, &H0& ' Windows-API aufrufen.
Line (400, 60)-(420, 80), , B
ElseIf wert1 = 3 Then 'Dreieck
Line (400, 60)-(420, 60)
Line (400, 60)-(410, 80)
Line (420, 60)-(410, 80)
FillColor = QBColor(11)
FloodFill hDC, 410, 70, &H0& ' Windows-API aufrufen.
End If
'dritte Figur ermitteln
wert1 = Int((3 * Rnd) + 1)
If wert1 = 1 Then 'Kreis
FillColor = QBColor(10)
Circle (450, 70), 10
FloodFill hDC, 450, 20, &H0& ' Windows-API aufrufen.
ElseIf wert1 = 2 Then 'Viereck
FillColor = QBColor(14)
FloodFill hDC, 450, 20, &H0& ' Windows-API aufrufen.
Line (440, 60)-(460, 80), , B
ElseIf wert1 = 3 Then 'Dreieck
Line (440, 60)-(460, 60)
Line (440, 60)-(450, 80)
Line (460, 60)-(450, 80)
FillColor = QBColor(11)
FloodFill hDC, 450, 70, &H0& ' Windows-API aufrufen.
End If
End Function
Dem CommandButton übertragen Sie nun die Aufgabe,
die Slotmaschine zu starten.
Command1_Click
Dim i As Integer
'ein bisschen Bewegung vortäuschen
For i = 0 To 100
Call Slot
Next i
Form1.Cls
Call Slot
Starten Sie Ihr Projekt mit F5 und schauen sich Ihre Little Slotmachine mal an. |