hallo tobi, das ist der code von visualbasic 5.0.
den kannst du mit deinem nicht vergleichen. weil du deine routinen selbst zusammenstellt und kontrollieren musst. zum beispiel ist die "ocx" noch zusätzlich bei mir gefordert. ist aber auf jeden computer vorhanden.
man soll das rad bei windows nicht mehr neu erfinden. windows ist dafür geschaffen mit "ocx" und "dll" zu arbeiten, bei dir heissen sie dann halt "macros" und sind im programm mit als inhalt. dein programm ist aber trotzdem gut. da ich mit der zusätzlichen toolprogrammierung für den robby sehr flexibel sein muss, ist es von vorteil das wenn man diese sachen schnell ändern möchte so ein programm braucht. visualbasic ist dafür hervorragend, wenn man auch sieht, wie schnell man die "ocx" von der win-tv-karte ohne diese benutzen kann und nur mit ein paar declare-zugriffen auf dies "ocx" das gleiche machen kann als wär es das origprogramm von der wintv-karte, das schätze ich so.
mein programm kann ich jetzt in kürzester zeit umstellen "bps
auswahl", "pixel dehnen", "auswerten der daten im ram und nicht im picturefenster", "und... und...alles was die gameboy-cam für die visuelle sache braucht".
mfg pebisoft
ps: eine aufnahme von der gameboycam mit der visualbasicoberfläche
aufgenommen über RS232 und im picturefenster dargestellt befindet sich
im "album, persönliche galerie, pebisoft".
die daten von der gameboy-cam liest ein AVR16-8mhz mit dem internen
adc aus und sendet diese zum pc. geproggt mit winavr-c.
Code:
VERSION 5.00
Object = "{648A5603-2C6E-101B-82B6-000000000014}#1.1#0"; "MSCOMM32.OCX"
Begin VB.Form Form1
Caption = "Gameboycambild"
ClientHeight = 3630
ClientLeft = 945
ClientTop = 780
ClientWidth = 4935
DrawMode = 11 'Stift Xor invers
LinkTopic = "Gameboycambild"
ScaleHeight = 3630
ScaleWidth = 4935
Begin VB.CommandButton Command2
Caption = "Bild zeichnen"
Height = 465
Left = 600
TabIndex = 4
Top = 2700
Width = 1215
End
Begin VB.PictureBox Picture1
Height = 1890
Left = 2400
ScaleHeight = 122
ScaleMode = 3 'Pixel
ScaleWidth = 127
TabIndex = 2
Top = 300
Width = 1965
End
Begin VB.OptionButton close
Caption = "Close-RS232"
Height = 495
Left = 480
TabIndex = 1
Top = 1200
Width = 1335
End
Begin VB.OptionButton open
Caption = "Open-RS232"
Height = 495
Left = 480
TabIndex = 0
Top = 480
Value = -1 'True
Width = 1455
End
Begin MSCommLib.MSComm MSComm1
Left = 2025
Top = 1125
_ExtentX = 1005
_ExtentY = 1005
_Version = 327680
CommPort = 3
DTREnable = -1 'True
BaudRate = 19200
EOFEnable = -1 'True
End
Begin VB.Label Label2
Caption = "19200bps"
Height = 240
Left = 825
TabIndex = 5
Top = 225
Width = 765
End
Begin VB.Label Label1
BackColor = &H80000009&
Caption = "Label1"
BeginProperty Font
Name = "Arial"
Size = 12
Charset = 0
Weight = 700
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 390
Left = 675
TabIndex = 3
Top = 1950
Width = 1065
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim zahl(16400) As Integer
Dim zaehler As Integer
Dim x As Integer
Dim y As Integer
Dim i As Integer
Dim grau As Integer 'für den Pixelwert
Private Sub close_Click()
MSComm1.PortOpen = False
End Sub
Private Sub Command2_Click()
For i = 0 To 16385
grau = zahl(i)
Picture1.PSet (x, y), RGB(grau, grau, grau) 'malt den Pixel ins Bild
x = x + 1 'ein Bildpunkt weiter nach rechts
If x > 127 Then x = 0: y = y + 1 'wenn am Ende einer Spalte ,dann nächste Zeile
Next i
Me.Refresh
x = 0
y = 0
zaehler = 0
End Sub
Private Sub Form_Load()
zaehler = 0
x = 0
y = 0
MSComm1.CommPort = 1
MSComm1.Settings = "19200,N,8,1"
MSComm1.PortOpen = True
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.InputLen = 1
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive: zahl(zaehler) = Asc(MSComm1.Input)
Label1 = zahl(zaehler)
zaehler = zaehler + 1
End Select
End Sub
Private Sub open_Click()
MSComm1.PortOpen = True
End Sub
Lesezeichen