Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1204to1208
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VB?-Code nach VBa umschreiben?

VB?-Code nach VBa umschreiben?
Reinhard
Halle Wissende,
ich hänge bei diesem Code fest.
Gefunden hier:
http://www.developer.com/net/vb/article.php/3303671
Nachfolgedn wie weit ich bislang kam.
Danke und Gruß
Reinhard

Option Explicit
Public Sub PaintGraphicFace(ByVal g As Graphics, ByVal x As Integer, _
ByVal y As Integer, ByVal dx As Integer, ByVal dy As Integer)
Dim hdc As IntPtr
hdc = g.GetHdc()
Try
Dim Card As Integer
Card= CType(Me.FCardFace, Integer) * 4 +     CType(Me.FCardSuit, Integer)
cdtDrawExt(hdc, x, y, dx, dy, Card, 0, 0)
Finally
g.ReleaseHdc (hdc)
End Try
End Sub
Public Sub PaintGraphicBack(ByVal g As Graphics, ByVal x As Integer, _
ByVal y As Integer, ByVal dx As Integer, ByVal dy As Integer)
Dim hdc As IntPtr
hdc = g.GetHdc()
Try
cdtDrawExt(hdc, x, y, dx, dy, 61, 1, 0)
Finally
g.ReleaseHdc (hdc)
End Try
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VB?-Code nach VBa umschreiben?
11.03.2011 23:41:40
MichaV
Moin,
das ist VB.net.
Was hast Du denn vor?
Gruss- Micha
AW: VB?-Code nach VBa umschreiben?
11.03.2011 23:47:40
Reinhard
Hallo Micha,
ich will die cards.clle aus lesen, also alle 52 karten haben un die 2 Rückseiten die da drin gibt auch.
Und dafür suche ich halt Vb(a) Code. Und das ist Net? Sehr gut, ich kenne da einen der ist in Net sehr gut und war das früher auch in VB. von VB zu Vba müßt ich dann selber packen, wär aber auch nicht schlimm wenn nicht, ist ja nur einmalig, und ich habe VB.5.0
Gruß
Reinhard
noch offen o.w.T.
12.03.2011 02:56:21
Reinhard


AW: mit VBA Karten auslesen (Link)
12.03.2011 14:27:51
MichaV
:o)
Darum fragte ich, wenns nur ums Auslesen geht dann reicht das aus.
@Reinhard: Lies Dir die Codes von Michael Schwimmer mal genau durch. Da findest Du auch was über Me.hdc und VBA.
Gruss- Micha
@ M & M , dankeschön :-)
12.03.2011 15:34:07
Reinhard
Hallo,
das ist natürlich für mich besser, a in Deutsch und b, es funktioniert gleich *gg*
Me.hnc muß ich schauen, das interessiert mich dann doch.
Schönes WE
Gruß
Reinhard
bitteschön, gern geschehen :o) oT
12.03.2011 17:11:44
Matthias
AW: bitteschön, gern geschehen :o) oT
12.03.2011 21:20:51
Reinhard
Hallo Matthias,
ich hab jetzt mit dem Code von Michael Schwimmer experimentiert und hübsche Dinge gebastelt :-)
Bin da sehr zufrieden. Und ich wollte ja letztlich nur auslesen, das ist perfekt gelöst.
Den Sinn da jetz ein tolles Kartenspiel zu simulieren hab ich gar nicht.
Allein für sowas (grad in der Sekunde eingefallen wo ichs schreibe), damit könnte ich als Gag bringen, wenn ich vielleicht in einer xls jmdm eine Warnung zukommen lassen will, daß ich ihm dann auch eine rote karte zeigen kann *vorfreu*, denn sowas mag ich sehr.
Manches da habe ich noch nicht bis ins kleinste verstanden, aber das macht mir gar nix, ich kann ja testen und durch sehen=anfassen=begreifen dann begreifen.
Das mit dem Me.hnc würde ich auch gern begreifen. Was kann amn da tun? Da bräuchte man jmdn der das lauffähig macht, woher nehmen. *grübel*
Wie geht es deinen Zaunpfählen rings um Haus?
*sehr grins*
Wenn nicht auch okay, scönes Rest WE, auch an MiachaV
Gruß
Reinhard
Anzeige
Neues Problem mit "Me."
12.03.2011 06:51:47
Reinhard
Hallo Micha,
okay, das Thema mit dem VB.Net ist erledigt.
Jetzt hängt es erstmal nur an einer Winzigkeit.
https://www.herber.de/bbs/user/73938.xls
Es geht um "hdc", In VB steht dort Me.hnc und es funktioniert, in VBA leider nicht.
Auch ohne Me. geht es nicht.
Das Modul ist wie im Original. Wenn ich alle 5 Zeilen mit hnc auskommentiere kommt ja die UF mit ihren drei CBs.
Von daher habe ich große Hoffnung daß es nur eine Kleinigkeit für Kundige ist.
Gruß
Reinhard
Vorab die Deklarationen:
Global TheDeck(416) As Integer 'allow for up to 8 decks
Global DeckTot As Integer 'keep track of number of cards in deck
Global BackStyle As Integer 'value for back of card
'cards.dll calls, you may need to alter the path for your own system
Declare Function cdtInit Lib "C:\WINDOWS\SYSTEM32\Cards.Dll" (dx As Long, dy As Long) As Long
Declare Function cdtDrawExt Lib "C:\WINDOWS\SYSTEM32\Cards.Dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal dx As Long, ByVal dy As Long, ByVal ordCard As Long, ByVal iDraw As Long, ByVal clr As Long) As Long
Declare Function cdtDraw Lib "C:\WINDOWS\SYSTEM32\Cards.Dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal iCard As Long, ByVal iDraw As Long, ByVal clr As Long) As Long
Declare Function cdtTerm Lib "C:\WINDOWS\SYSTEM32\Cards.Dll" () As Long
Nachstehend der relevante Code der UF.

Option Explicit
Private Sub CommandButton1_Click()
Dim i As Integer
Dim offset As Integer
'initialize, don't shuffle
TheDeck(DeckTot) = InitDeck()
'deal
For i = 1 To 8
cdtDraw hdc, 200, (100 + offset), TheDeck(i), 0, vbWhite
offset = offset + 15
Next i
End Sub
Private Sub CommandButton2_Click()
'I used one sub to demonstrate 3 things to
'save time. Show a card, invert a card and show a cardback
'I also used a With to save time
With CommandButton2
If .Caption = "Show Card" Then
'how to show the card
cdtDraw hdc, 300, 100, 3, 0, vbWhite
cdtDraw hdc, 300, 100, 3, 0, vbWhite
.Caption = "Invert Card"
Exit Sub
End If
If .Caption = "Invert Card" Then
'how to invert the card
'cdtDraw Me.hdc, 300, 100, 3, 2, vbWhite
.Caption = "Flip Card"
Exit Sub
End If
'53 - 65  are the values for card backs
If .Caption = "Flip Card" Then
'how to flip the card
cdtDraw hdc, 300, 100, BackStyle, 1, vbWhite
.Caption = "Show Card"
Exit Sub
End If
End With
End Sub
Private Sub CommandButton3_Click()
Dim i As Integer
Dim offset As Integer
'initialize, shuffle
TheDeck(DeckTot) = InitDeck()
TheDeck(DeckTot) = CardShuff(DeckTot, 3)
'deal
For i = 1 To 8
cdtDraw hnc, 100, (100 + offset), TheDeck(i), 0, vbWhite
offset = offset + 15
Next i
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige