Steuerelement wird als Funktion erkannt

Hallo!

In einer Prozedur möchte ich einen Sprite an einer bestimmten Stelle anzeigen. Die Prozedur sieht folgendermaßen aus:

Public Sub Zeichne(Nr As Long)
Dim x, y As Long
Select Case (Nr)
Case 1: x = Pos1x: y = Pos1y
Case 2: x = Pos2x: y = Pos2y
Case 3: x = Pos3x: y = Pos3y
Case 4: x = Pos4x: y = Pos4y
Case 5: x = Pos5x: y = Pos5y
End Select
Dim sw As Long, sh As Long

sw = Bitmap(2).ScaleWidth
sh = Bitmap(2).ScaleHeight
BitBlt Display.hDC, x, y, sw, sh, _
Maske(2).hDC, 0, 0, BIT_AND

BitBlt Display.hDC, x, y, sw, sh, _
Bitmap(2).hDC, 0, 0, BIT_INVERT
End Sub

In dem Caseblock wird überprüft, wohin der Sprite gezichnet werden soll.
Aber dann bei der Zuweisung von sw und sh versucht das Programm die Funktion Bitmap aufzurufen, die es aber nicht gibt. Demzufolge kommt ein Fehler. Das Steuerelement Bitmap(2) gibt es auch. Allerdings ist das in einer Form und die Prozedur in einem Modul. Könnte das evt. stören? Und wenn nicht, wie überede ich das Programm dazu, die Eigenschaften des Steuerelements in die Variablen zu schreiben?
Ich bin für jeden Tip dankbar.

Nico

Hallo Nico,

poste mal bitte was du alles für controls ( Pictureboxen auf der form hast!
Laut dem Source code muesstet du 7 Stueck davon haben!

Picture boxen mit dem Namen Bitmap und den Index 0 und 1 und 2 = 3 Pictureboxen,
dann noch eine names Display
Picture boxen mit dem Namen Maske und den Index 0 und 1 und 2 = 3 Pictureboxen.

Ich kann mir schlecht vorstellen das du es so hast :smile:

Bei der Zuweisung von sw und sh versuchst du die Breite der picturebox Bitmap mit dem index 2 zuzuweisen. Wenn diese net da ist, volla Fehler :frowning:
Weitere Fehler treten unten dann noch auf.

Poste mal deine Elemente mit namen die du auf der Form hast. 2 Pictureboxen sollten reichen. Dann aendere ich dir den Code passend ab :smile:

MFG Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Also da wären:

Bitmap(0-2)
Maske(0-2)
Display
HGrund

Ich hab mal die Prozedur in die Form mit den PicBoxs getan, und so funktioniert’s. Allerdings ist dann das Sprite über dem, das dem Mauszeiger folgt. Ich möchte aber, dass das unter dem ist. Ich hab schon versucht, die Reihenfolge zu ändern, bringt aber nichts. Weiß da jemand weiter?

Nico