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