![]() |
Anzeige:
|
|
|||||||
| Visual Basic, Visual Basic.NET Alles zum Thema - Visual Basic und Visual Basic.NET
Fragen zu VBA bitte in das Forum Office-Anwendungen posten! |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 06.03.2005
Ort: Gera
Beiträge: 732
|
Hallo,
ich probiere seit kurzem mit DirectX herum. Nun habe ich es geschafft ein Fenster zu erstellen, worin die Aktuelle Zeit als 2D Text angezeigt wird. Jedoch, sobald man das Programm schließt kommt folgende Fehlermeldung: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. Dies zeigt er auf Zeile 30: Code:
karte.Clear(ClearFlags.Target, Color.Black, 0.0F, 0) Code:
Imports Microsoft.DirectX
Imports Microsoft.DirectX.Direct3D
Imports System.Drawing.Font
Public Class Form1
' System Variablen
' ------------------------------------------
Private karte As Device
Private present As PresentParameters
Private bRunning As Boolean
Private Test As Direct3D.Font
' ------------------------------------------
' Öffentliche Funktionen
Public Function Initialisieren() As Boolean
present = New PresentParameters
With present
.Windowed = True
.SwapEffect = SwapEffect.Discard
.EnableAutoDepthStencil = True
.AutoDepthStencilFormat = DepthFormat.D16
End With
karte = New Direct3D.Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, present)
Return True
End Function
Public Sub Render()
karte.Clear(ClearFlags.Target, Color.Black, 0.0F, 0)
karte.BeginScene()
' Hier kommt alles rein was dargestellt werden soll
Test.DrawText(Nothing, TimeString, 50, 50, Color.Green)
karte.EndScene()
karte.Present()
End Sub
' Hier kommt die Hauptschleife rein
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Show()
bRunning = Initialisieren()
Test = New Direct3D.Font(karte, New Drawing.Font("Courier New", 13, FontStyle.Bold))
Do While (bRunning = True)
Application.DoEvents()
Render()
Loop
karte = Nothing
present = Nothing
Me.Close()
Me.Dispose()
End Sub
End Class
In der Form_Load Aktion wird die Hardware initialisiert. Im nächsten Schritt verwende ich die Hauptschleife, wie es auch bei einem Spiel nötig ist. In dieser Schleife benutzer ich die Sub Render(), dort steht alles drinne was angezeigt werden soll. Woran kann das genau liegen? Ich bin wahrscheinlich gerade sehr blind ... mfg Phill edit: Solch ein ähnlicher Beitrag steht auch in einem anderen Forum allerdings ohne Antwort
__________________
Aus Fehlern wird man klug, drum ist einer nicht genug! Ich bin nur ein Opfer des Kapitalismus. |
|
|
|
|
|
|
#2 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 08.02.2009
Ort: Berlin
Beiträge: 226
|
Habe von der obigen Sprache keine Ahnung, aber was wäre wenn Du karte und present erst nach dem Disposen/Closen nullstellst?
__________________
Programmieren für Anfänger. |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Problem mit Fenster schließen etc. | mazze17 | Windows XP | 2 | 07.05.2006 20:11 |
| befehl für schließen von offenem fenster(bei Profan 5.0) | Poeli | Sonstige Programmiersprachen | 2 | 14.06.2005 18:43 |
| Explorer Fenster lässt sich nicht schließen | milhouse | Office-Anwendungen | 4 | 06.01.2004 15:40 |
| Fenster bzw. Verbindungen schließen nicht?! | Dapper Dan | Windows 95/98/ME/2000/NT | 5 | 30.08.2003 14:57 |
| HTML Tag um Browser Fenster zu schließen | Michi | Allgemein | 2 | 24.05.2003 01:44 |