Laden...
K
KRambo myCSharp.de - Member
Software-Entwickler Dabei seit 29.08.2004 355 Beiträge
Benutzerbeschreibung

Forenbeiträge von KRambo Ingesamt 355 Beiträge

24.03.2005 - 18:38 Uhr

Naja ich finde bevor ein User einen Thread aufmacht, soll er sich erstmal die Forumregeln durchlesen. Denn Threads mit dem Titel "Hab ne Frage", "Funktioniert nicht", "Wie geht das" sind soweit ich weiß in keinem Forum erwünscht.

Und wenn ich 5x posten muss, bis ich weiß, wo sein Problem ist, hängt mir das auch zum Hals raus. Hier in diesem Forum hab ich auch nur gute Antworten bekommen...deshalb weiß ich eigentlich nicht warum dieser Thread existiert 🤔

20.03.2005 - 23:18 Uhr

Naja ich denk mal da wirst mit nem 486 nicht sehr weit kommen, es hängt zwar größtenteils von der Grafikkarte ab, aber auch von der CPU. 20 x 1.000 Punkte sollten auf einem anständigen Rechner eigentlich keine Probleme verursachen, wie es da mit alten Rechnern aussieht, da hilft wohl nur probieren. Du kannst es sowieso nur rausfinden, wenn du dir da ein Testprogramm bastelst, das einige Punkte auf den Bildschirm malt und schaut, wie flüssig dann das ganze läuft.
Heutige Spiele zeichnen im Durchschnitt ein paar 100.000 Punkte einige Male pro Sekunde auf den Bildschirm, nur so als Vergleich. Natürlich muss dann auch performanceoptimiert programmiert werden, was auch nicht immer einfach ist.

Ein Problem dürftest du da auch noch haben: alte Grakas unterstützen DirectX nur bis zu einer bestimmten Version. Das heißt, je nachdem welche Version du nimmst, musst du eventuell auch Rücksicht auf ältere Versionen nehmen, wenns da auch noch laufen soll.

Also wenn du es in DirectX 9.0 proggst, dann is dann die Hardwareanforderung mindestens eine Graka, die 100% DirectX 9 kompatibel ist, damit dann auch gewährleistet ist, dass das Programm sicher darauf läuft...aufwärts kompatibel ist DirectX schon, aber nicht abwärtskompatibel, das heißt DirectX 7 Programme und Spiele laufen auch mit DirectX 9 genauso, nur umgekehrt gehts nicht...sonst kann ich dir da auch nicht weiterhelfen...

20.03.2005 - 19:21 Uhr

Alles was ich dazu sagen kann:

Es reicht in DirectX nicht, dass du nur eine Funktion aufrufst und der Rest passiert von alleine. Zur Machbarkeit: Ich denke machbar ist so gut wie alles, nur ob es den Aufwand wert ist, das musst du selber entscheiden...

Die Suche des Forums hätte dir schon einiges gefunden, es gibt nämlich ein eigenes Tutorial hier (von Hauptmann): DirectX: Tutorial

20.03.2005 - 19:04 Uhr

Ich denke nun sind genügend Lösungsvorschläge gekommen. Thx an alle! 🙂

20.03.2005 - 14:11 Uhr

@Tankian:
Hm das sieht schonmal sehr gut aus, genau so hab ichs mir vorgestellt. Ich nehme an, das geht in 1.1 nicht, oder? Ich freu mich schon auf die 2er, da kann man einiges viel eleganter lösen 🙂

20.03.2005 - 11:31 Uhr

Hm ocx in C# oder VB erstellen, das wird nicht ganz drin sein. Wie vorher schon geschrieben, ist es möglich, mit Delphi ActiveX Programme zu schreiben, die definitiv im IE laufen, wenn allerdings ActiveX auch aktiviert ist.

Und da ocx ein Delphi-Dateiformat ist (genauer gesagt wahrscheinlich ein Usercontrol oder was ähnliches), wirst du dann wohl oder übel Delphi nehmen müssen. Wobei ich bezweifle, dass sich der Aufwand lohnt, da die meisten IE-User ActiveX eh deaktiviert haben.

Wollte mir auch ma ein ActiveX Proggie in Delphi schreiben, wär auch kein Problem, einziges Problem is dass es überall deaktiviert ist (wegen Security), also bringts eigentlich nix.

Beste Alternative ist immer noch ASP.NET!!

20.03.2005 - 11:27 Uhr

Hehe ja können schon, nur übertreiben muss ichs auch nicht. Das Erstellen überlass ich dem Designer, ausser ich brauch ein Control nicht immer, dann mach ichs dynamisch. Ich erstell nur die andern Sachen wie DataSet und so immer im Code...

20.03.2005 - 09:57 Uhr

Hm hab grad rausgefunden, dass das DataSet irgendwie immer Added setzt, obwohl ich noch gar nichts geaddet habe, sondern wenn ich nen Datensatz per ListBox auswähle... 🤔

20.03.2005 - 09:21 Uhr

Mit VB? Kann ich mir nicht vorstellen, dass es damit geht. Das einzige, was ich da weiß, ist dass man mit Delphi früher (also Version 6 & 7, neuere weiß ich nicht, die 7er war die letzte, mit der ich geproggt hatte) ActiveX Anwendungen erstellen konnte, die dann beim Anwender auch erscheinen, jedoch musste der natürlich ActiveX erlauben und das tut ja fast keiner, weils da nicht wenige Sicherheitslücken gibt....mit VB gibts da soweit ich weiß auch keine Möglichkeit und in .NET bleibt wohl nur ASP übrig...

20.03.2005 - 09:13 Uhr

Danke ich hab auch schon ne Lösung gemacht:


int i=0;
TextBox[] textboxArray = {textBox1, textBox2, textBox3, textBox4, textBox5};
			
foreach(TextBox textbox in textboxArray)
{
  textbox.Text = dataSet.Tables[0].Rows[listBox1.SelectedIndex][i].ToString();
  i++;
}

So läuft das auch und is relativ wenig Code...im Vergleich zu den 5 fast identischen Zeilen... 8)

20.03.2005 - 00:37 Uhr

Ja ich hab nur 5, wobei es vielleicht noch ein paar mehr werden (so 6 oder 7). Jetzt hast du mich schon verstanden. Mal sehen, wie es mit dem Array läuft, vielleicht bau ichs dann so um. Da bin ich stur, das gefällt mir so nicht, die 5 Zeilen (und wenns noch mehr werden 8o)

Thx 8)

20.03.2005 - 00:29 Uhr

Hi herbivore

Hm scheint ja alles schön und gut zu sein, nur wollte ich eigentlich danach nicht doppelt soviel Code haben 🙂

Mit Array und Hashtable hab ich paar Zeilen mehr, sonst hab ich halt 5 Zeilen Code für die Zuweisung. Nur find ichs nicht schön, wenn ich 5 Zeilen hab, die wie gesagt bis auf die Indexe total gleich sind:


this.textBox1.Text = dataSet.Tables[0].Rows[listBox1.SelectedIndex][0].ToString();
this.textBox2.Text = dataSet.Tables[0].Rows[listBox1.SelectedIndex][1].ToString();
...

Wie würde denn das per Reflection funktionieren? Hab mich damit noch nie befasst. Auf jeden Fall möchte ich den Code schlank halten, deshalb such ich da die geeigneste Version...

20.03.2005 - 00:13 Uhr

Hm war in dem Fall ein falscher Ansatz. textBox ist von keinem Typ. Von meiner Idee hab ich es mir so gedacht: ich setz mir den String "textBox" + nummer zusammen, dann hab ich zb. textBox1 und caste das dann zu ner textBox, somit dürfte ich dann den Text der real existierenden textBox1 ändern dürfen, wenn das so überhaupt geht.

Ne Schleife durch die Controlsauflistung ist mir in dem Fall zu aufwändig, ich brauch das in meinem Fall grad mal für 5 Textboxen, aber hab mir da gedacht wär viel schöner ne Schleife als 5x fast den gleichen Code bis auf die Indexe...

20.03.2005 - 00:00 Uhr

Hi Leute

Hab ein kleines Problem. Hab ein DataSet, in dem kann man während das Programm läuft Änderungen vornehmen. Wenn das Programm geschlossen wird, soll ne MessageBox erscheinen und fragen, ob die Änderungen gespeichert werden. Deshalb hab ich mir gedacht, verwende ich HasChanges().

Ok mein Code sieht so aus:


if(dataSet.HasChanges())
{
  DialogResult result;
  result = MessageBox.Show("Wollen Sie die vorgenommenen Änderungen speichern?",Application.ProductName,MessageBoxButtons.YesNo,MessageBoxIcon.Question);

  if(result == DialogResult.Yes)
  {
    dataSet.AcceptChanges();
    ...
  }
}

Wie gesagt kommt jetzt die MessageBox immer, wenn ich das Programm schließe, auch wenn ich keine Änderungen vornehme. Wenn ich aber statt dem


if(dataSet.HasChanges())

das schreibe zb mit Deleted


if(dataSet.HasChanges(DataRowState.Deleted))

dann kommt die MessageBox wirklich nur, wenn ich was gelöscht hab.

Ich möchte aber nicht schreiben


if(dataSet.HasChanges(DataRowState.Deleted) || dataSet.HasChanges(DataRowState.Added) || ...)

damit das funktioniert. Ohne Parameter sollte es ja auch gehn, oder?

19.03.2005 - 23:48 Uhr

Hm ich glaube du hast mich falsch verstanden. Ich möchte kein Arrayelement zu ner TextBox casten, sondern möchte mir den Namen der Textbox im prinzip dynamisch zusammensetzen, deshalb der Index. Das geht aber so ja nicht, deshalb such ich da noch immer ne Lösung.

Falls es immer noch nicht klar ist:
Im ersten Durchlauf soll der Text der TextBox1 auf den angegebenen Wert gesetzt werden, dann TextBox2, TextBox3 usw. Das DataSet hat damit gar nichts zu tun, das hab ich nur in meinem Testprogramm so drin.

19.03.2005 - 23:31 Uhr

Hi hab mal ne Frage und zwar möchte ich mit ner For-Schleife ein paar TextBoxen nacheinander zuweisen. Also in etwa so:


for(int i=0;i<dataSet.Tables[0].Columns.Count;i++)
   (TextBox)(textBox[i+1]).Text = dataSet.Tables[0].Rows[listBox1.SelectedIndex][i].ToString();

Das heißt, ich möchte den Namen des Controls dynamisch zuweisen, sieht man im Quellcode, nur leider funktioniert das nicht so. Kann mir jemand helfen? Wahrscheinlich wieder nur ne Kleinigkeit... 🤔

Thx im voraus!

02.03.2005 - 16:29 Uhr

Kommts mir nur so vor oder iss der Link oben death??

25.02.2005 - 15:15 Uhr

Hi Felix

Ist bereits im ToDo vermerkt, wird als nächstes Feature dazukommen. Freut mich dass es dir gefällt, ich hab schon gedacht, das wird wieder ein Selbstgesprächs-Thread 🙂

Was auch noch dazukommen wird:
Ich werde die Textboxen nochmal überarbeiten, damit sie sich so verhalten wie die Orginalen, d.h. wenn eine Stelle eingegeben wurde, soll er gleich weiterspringen ins nächste Feld...

24.02.2005 - 21:57 Uhr

Hm nicht wirklich überzeugend das Feedback 🙁
Vielleicht wirds ja noch...

24.02.2005 - 13:29 Uhr

Soweit ich weiß gibts bei nem TimeSpan auch eine Methode Add() vielleicht kannst du mit der was anfangen...

23.02.2005 - 19:51 Uhr

So Leute hab die Beta im Anhang drangehängt. Nun erhoffe ich mir mehr Meinungen 🙂

23.02.2005 - 12:23 Uhr

Ja hab ich auch grad rausgefunden. FlatStyle wie bei den Buttons auf System, dann sind se rund.
Sieht doch schon gleich n Stück besser aus 🙂

Edited:
So hab die Version ein wenig designtechnisch überarbeitet, die Groupboxen gerundet sowie die 2 unteren Groupboxen ein paar Pixel runtergeschoben, damit die Abstände in etwa passen...weiters hab ich die Textboxen rechts an das ListView angepasst...

Screenshots hab oben ich aktualisiert!
Habe gleich auch noch einen ohne Luna gemacht, damit man sieht, dass meine IPTextboxen auch im klassischen Style noch gut aussehen 8)

23.02.2005 - 12:13 Uhr

Stimmt der iss noch ein wenig zu klein. Hmm was mich auch ein wenig stört, iss dass die GroupPanels so eckig sind. Iss beim Orginal von MS nicht so, da sind sie abgerundet 🙁

23.02.2005 - 09:19 Uhr

Werde heute Abend ne Version online stellen.
Werd dann den Link hier reinschreiben, damit man das antesten kann 😉

Mich würden die Meinungen interessieren, die ihr dazu habt. Deshalb hab ich nen Screen geuppt, damit man in etwa sieht, wie es aussieht...

23.02.2005 - 09:06 Uhr

Hi

möchte mein neustes Projekt vorstellen. Es handelt sich um ein Programm, das Netzwerkkonfigurationen in Profilen speichern kann und man kann diese Profile aktivieren und übernimmt somit die eingegebene Konfiguration auf die jeweilige NW-Karte. Das Programm heißt "SwitchNetwork" und aktuell ist die Version in der Beta-Phase 🙂

Ich weiß, dass es das schon gibt, gibt auch ein Programm, das noch vieel mehr kann, aber das ist auch kommerziell und meins wird Freeware.

Ok hier mal ein Link zu nem Screenshot des ganzen:
LINK XP-STYLE
LINK KLASSISCH

Das ganze ist logischerweise C#, die Konfiguration hab ich mit der WMI bewerkstelligt, die Config wird binär gespeichert. Die IP-Textboxen hab ich mir selber gebaut, da es keine wirklich brauchbaren im Internet gab, als ich sie gebraucht hab. Diese verhalten sich wie die von MS in der Netzwerkverbindung, nur dass man bei meiner per Tab weiterspringt (von einem IP-Block in den nächsten)....vom Design her hab ich mich am Design von MS (Netzwerkverbindung) orientiert, somit dürfte das Design einigen bekannt vorkommen. Hab den Text auch direkt übernommen.

Geplante Features in der Zukunft:

* Vorberechnung der Subnetmask je nach eingegebener IP
* Gültigkeitsüberprüfung der IPs sowie Subnetmasken
* Eingabe sekundärer DNS-Server
* Multilanguage (deutsch, englisch geplant)

So bin nun auf eure Meinung gespannt 🙂

Ich habe Teile des Artikels auf Codeproject in mein Programm übernommen.
Dies ist jedoch keine simple Kopie.

17.02.2005 - 20:53 Uhr

Jo iss nich das 1te Mal hier 😁

17.02.2005 - 20:45 Uhr

Ka ich progge auch noch nich lange Managed DX 🙂

15.02.2005 - 22:10 Uhr

Ok immer getrennt blöde Frage 🙂

15.02.2005 - 21:26 Uhr

Aber mal ne Frage: Isses gut wenn ich den Code für den Service in die Programmassembly lege? Oder sollte das möglichst getrennt sein (zb. ne Library)...?

15.02.2005 - 21:21 Uhr

Problem gelöst blöder Fehler. Man muss dem Util natürlich auch die Dateiendung übergeben...hab schon gedacht es liegt am Code...

15.02.2005 - 20:46 Uhr

Hi Leute

Hab ein kleines Problem und zwar hab ich grad angefangen, ein bischen mit Services rumzuspielen. Hab den Service schon fertig und wollte ihn installieren und zwar mithilfe der "installutil.exe".

Nur meldet die mir immer den Fehler:

Beim Initialisieren der Installation ist eine Ausnahme aufgetreten:
System.IO.FileNotFoundException: Datei- oder Assemblyname 'Backup' oder eine
Abhänigkeit davon wurde nicht gefunden.

Kanns mir nicht ganz erklären, die Fehlermeldung. Im Prinzip hab ich nur ne Klasse, die heißt "BackupService" und ne Klasse "InstallService". Die liegen beide im selben Namespace (also "Backup.Service"), also was fehlt ihm denn?

15.02.2005 - 15:45 Uhr

Okay ich hol mir auch mal trillian, dann haben wir mal verschiedene zur Auswahl...

15.02.2005 - 08:24 Uhr

Hi Alex

Das mit dem Community Index find ich schonmal super, dann hab ich gleich ne Übersicht von allem neuen. Super work 🙂

14.02.2005 - 20:02 Uhr

Hm msn hab ich deinstalliert und nich wirklich bock das zeug nochma neu zu installieren, des programm nervt leicht. Wie wärs mit icq oder trillian?

13.02.2005 - 14:11 Uhr

Hm wenn du DirectX installierst und die eine Setup hast, dann doppelklickst du und er fragt nach nem Ordner. Da wird dann alles entpackt. Dann hast du da mehrere Unterordner und das Setup wird automatisch gestartet. Nur bin ich draufgekommen, dass die Installation nich immer ganz funktioniert, und dann muss man das 2te Setup in dem betreffenden Ordner auch ausführen, dann gehts...ich glaub die Struktur geht so irgendwie \DirectX\Managed DirectX\Debug und da iss ne msi drin....

10.02.2005 - 20:31 Uhr

Im Ordner wo das Setup liegt, gibts nen eigenen Ordner, wo eine extra Setup-Datei für Managed liegt. Die hab ich installiert, dann gings auch. Die andere installiert glaub ich nur das "normale" DirectX...

Musste nur ein bischen Suchen da in den Ordnern die Bezeichnungen sind eh selbsterklärend. Weiss den Ordnernamen nicht auswendig...

10.02.2005 - 08:59 Uhr

Die Meldung hatte ich auch mal. War weil das Managed DirectX nicht "richtig" installiert war auf dem Rechner, danach gings...

06.02.2005 - 20:08 Uhr

Naja ich sollte in ein paar Tagen ne lauffähige Version haben, wo die Tex nich so unscharf iss. Mit Filtering wirkt sie nicht so pixelig, aber sonst nützt das auch nix bei der Schärfe...hoffe bis dahin hast du wieder was. Find ich auf jeden Fall super und leicht verständlich das Ganze 🙂

05.02.2005 - 23:29 Uhr

Hi Hauptmann

Hab grad noch ne Frage zum Texturing. Wieso ist die Textur da so unscharf? Im jpg ist sie doch scharf, vergrößert Direct3D die so?

Hab Anisotropisches Filtering aktiviert, damit sieht es ein wenig besser aus. Nur wie bekommt man die Textur schärfer?

05.02.2005 - 23:04 Uhr

Hallo

Das mit dem Licht wird einfach nix in meinem Programm, da wird sicher wieder irgend ein Parameter nich stimmen. Was aber wichtiger ist: Ich habs inzwischen geschafft, dass die Box wenigstens die Farbe der Textur annimmt. Habs nun doch mit device.SetTexture geschafft, nur irgendwie übernimmt er nur die Grundfarbe der Textur 🤔

Wenn ich also zb ne rote Textur einbinde, wo auch n paar weisse Streifen oder so drinsein können, wird die ganze Box rot. Wenn die Textur braun ist, wird die Box braun. Kann doch nich sein? Irgendwie teilweise konfus das Zeug...

Edited
Ok hat sich geklärt (siehe Tutorial vom Hauptmann)...nur irgendwie iss die Textur noch so unscharf...

01.02.2005 - 08:55 Uhr

Vielleicht so:


string cpuSpeed = Convert.ToString(GetProcessorSpeed());

01.02.2005 - 08:53 Uhr

Hm irgendwie kommt mir dieser Thread so bekannt vor. Wieso hast du in 2 Subforen denselben Thread gepostet? Ich glaub da kann einer davon deletet werden...

30.01.2005 - 17:20 Uhr

Mit C# geht das nicht, da dann das Framework benötigt wird. Anscheinend soll es aber bei C++.NET funktionieren, da man damit native Exe'n machen kann...

Achja installiert werden muss eigentlich keins der .NET Programme, es sei denn du setzt es bei deinem Programm voraus, dass irgendwelche Registry-Einträge vorhanden sind. Aber standardmäßig braucht kein .NET Proggy irgendwelche Registry-Einträge...

30.01.2005 - 17:03 Uhr

Hab ich gemacht, jedoch bleibt die Box immer schwarz. Habe auch testweise den Code für die Textur auskommentiert, nur bringt das auch nix. Irgendwas mach ich da falsch, dass die Box immer schwarz ist...gibts doch gar nicht...also Lighting ist on und das Light auch, daran kanns net liegen. Hab das VertexFormat auch Testweise wieder auf Diffuse umgestellt, passiert genausowenig...

29.01.2005 - 15:25 Uhr

Das raff ich nu aber nich ganz. Ich meine ich hab dem Licht die Position 2,2,2 zugewiesen, dass es dann hinter der Box ist, kann ich mir fast denken, nur warum strahlt es dann nach oben? Hab die Box ja auf 1,1,1 und den "Leuchtwinkel" (Direction) für das Licht auch...

28.01.2005 - 18:21 Uhr

Original von KRambo
Weiss ich auch nicht. Ihr könnt euch den Quellcode mal ansehen, habs im Anhang angehängt. Irgendwie geht auch das Lighting nicht hmm das Teil tut genau das Gegenteil von dem was ich will 8o

Hm mit anhängen als txt iss das nix da sieht man ja nix mehr....
Hier mal der Code:

  
using System;  
using System.Drawing;  
using System.Windows.Forms;  
using Microsoft.DirectX;  
using Microsoft.DirectX.Direct3D;  
using Microsoft.DirectX.DirectInput;  
  
namespace DirectX_TestApp4  
{  
  public class MainApp : System.Windows.Forms.Form  
  {  
  	private Mesh box;  
  	private Microsoft.DirectX.Direct3D.Texture textur;  
  	private Microsoft.DirectX.Direct3D.Device m_Device;  
  	private Microsoft.DirectX.DirectInput.Device keyb_Device;  
  
  	private Microsoft.DirectX.Direct3D.Font font;  
  
  	private float AngleX = 0.0f;  
  	private float AngleY = 0.0f;  
  	private float AngleZ = 0.0f;  
  
  	public MainApp(){}  
  
  	public void InitGfx()  
  	{  
  		try  
  		{  
  			this.ClientSize = new Size(1024,768);  
  			this.Text = "DirectX TestApp";  
  
  			this.KeyPress += new KeyPressEventHandler(OnKeyPress);  
  
  			PresentParameters pp = new PresentParameters();  
  
  			pp.Windowed = true;  
  			pp.SwapEffect = SwapEffect.Copy;  
  
  			m_Device = new Microsoft.DirectX.Direct3D.Device(Microsoft.DirectX.Direct3D.Manager.Adapters.Default.Adapter,Microsoft.DirectX.Direct3D.DeviceType.Hardware,this,CreateFlags.SoftwareVertexProcessing,pp);  
  			  
  			this.OnCreateDevice(m_Device, null);  
  		}  
  		catch(DirectXException ex)  
  		{  
  			MessageBox.Show(ex.Message);  
  		}  
  	}  
  
  	public void OnCreateDevice(object sender, EventArgs e)  
  	{  
  		VertexFormats format = VertexFormats.PositionNormal | VertexFormats.Texture1;  
  
  		box = Mesh.Box(m_Device, 1.0f, 1.0f, 1.0f);  
  
  		Mesh tempBox = box.Clone(box.Options.Value, format, m_Device);  
  		box.Dispose();  
  		box = tempBox;  
  
  		// Textur laden  
  		textur = TextureLoader.FromFile(m_Device, Application.StartupPath + @"\directx.bmp");  
  
  		CustomVertex.PositionNormalTextured[] verts = (CustomVertex.PositionNormalTextured[])box.VertexBuffer.Lock(0,typeof(CustomVertex.PositionNormalTextured), LockFlags.None, box.NumberVertices);  
  
  		verts[0].Tu = 0.0f;  
  		verts[0].Tv = 0.0f;  
  
  		verts[1].Tu = 1.0f;  
  		verts[1].Tv = 0.0f;  
  
  		verts[2].Tu = 0.0f;  
  		verts[2].Tv = 1.0f;  
  
  		verts[3].Tu = 1.0f;  
  		verts[3].Tv = 1.0f;  
  
  		box.VertexBuffer.Unlock();  
  	}  
  
  	public void Shutdown()  
  	{  
  		m_Device.Dispose();  
  	}  
  
  	public void Render()  
  	{  
  		m_Device.Clear(ClearFlags.Target, Color.White, 0.0f, 0);  
  		m_Device.BeginScene();  
  
  		// Matrix setzen  
  		m_Device.Transform.World = Matrix.RotationYawPitchRoll(AngleX, AngleY, AngleZ);  
  		m_Device.Transform.View = Matrix.LookAtLH(new Vector3(0.0f,3.0f,-5.0f),new Vector3(0.0f,0.0f,0.0f),new Vector3(0.0f,1.0f,0.0f));  
  		m_Device.Transform.Projection = Matrix.PerspectiveFovLH((float)Math.PI / 4, 1.0f, 1.0f, 100.0f);  
  		  
  		// RenderState setzen  
  		m_Device.RenderState.FillMode = FillMode.Solid;  
  		m_Device.RenderState.Lighting = true;  
  		m_Device.RenderState.CullMode = Cull.None;  
  		m_Device.RenderState.DitherEnable = true;  
  		m_Device.RenderState.ZBufferEnable = true;  
  
  		// Lighting  
  		m_Device.Lights[0].Type = LightType.Directional;  
  		m_Device.Lights[0].Direction = new Vector3(1.0f,1.0f,1.0f);  
  		m_Device.Lights[0].Position = new Vector3(2.0f,2.0f,2.0f);  
  		m_Device.Lights[0].Diffuse = Color.Red;  
  		m_Device.Lights[0].Range = 100.0f;  
  		m_Device.Lights[0].Enabled = true;  
  
  		// Vertex Format  
  		m_Device.VertexFormat = CustomVertex.PositionNormalTextured.Format;  
  
  		box.DrawSubset(0);  
  
  		InitializeKeyboard();  
  		ReadKeyboard();  
  
  		m_Device.EndScene();  
  		m_Device.Present();  
  	}  
  
  	static void Main()  
  	{  
  		MainApp app = new MainApp();  
  		app.InitGfx();  
  		app.Show();  
  
  		while(app.Created)  
  		{  
  			app.Render();  
  			Application.DoEvents();  
  		}  
  
  		app.Shutdown();  
  	}  
  
  	public void InitializeKeyboard()  
  	{  
  		keyb_Device = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Keyboard);  
  		keyb_Device.SetCooperativeLevel(this, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);  
  		keyb_Device.Acquire();  
  	}  
  
  	public void ReadKeyboard()  
  	{  
  		KeyboardState keys = keyb_Device.GetCurrentKeyboardState();  
  		if(keys[Key.Left])  
  			AngleX -= 0.03f;  
  		if(keys[Key.Right])  
  			AngleX += 0.03f;  
  		if(keys[Key.Up])  
  			AngleY -= 0.03f;  
  		if(keys[Key.Down])  
  			AngleY += 0.03f;  
  		if(keys[Key.M])  
  			AngleZ -= 0.03f;  
  		if(keys[Key.N])  
  			AngleZ += 0.03f;  
  	}  
  
  	private void OnKeyPress(object sender, KeyPressEventArgs e)  
  	{  
  		if((int)e.KeyChar == (int)Keys.Escape)  
  			this.Close();  
  	}  
  }  
}  
  

Edit:
Übrigens hab ich das VertexFormat von


VertexFormats.PositionNormal | VertexFormats.Diffuse;

in


VertexFormats.PositionNormal | VertexFormats.Texture1;

geändert, da wird die Box dann wieder vollständig dargestellt, nur halt wieder schwarz....

28.01.2005 - 18:17 Uhr

Weiss ich auch nicht. Ihr könnt euch den Quellcode mal ansehen, habs im Anhang angehängt. Irgendwie geht auch das Lighting nicht hmm das Teil tut genau das Gegenteil von dem was ich will 8o

Hm mit anhängen als txt iss das nix da sieht man ja nix mehr....
Hier mal der Code:

Ups Doppelposting sorry...

28.01.2005 - 17:23 Uhr

@Pulpapex:
Hab ich schon, nur wenn ich deine Koordinaten nehme, sieht das ganze dann so aus:
Bild

Irgendwie nich ganz was ich will. Wenn ich aber das hier eingebe:


verts[0].Tu = verts[0].X + 0.0f;
verts[0].Tv = verts[0].Y + 0.0f;

verts[1].Tu = verts[1].X + 1.0f;
verts[1].Tv = verts[1].Y + 0.0f;

...

dann sieht das schon besser aus, nur iss die Box immer noch schwarz... 🙁

28.01.2005 - 16:31 Uhr

Hm genau das ist das Problem, ich weiss die Koordinaten ja nicht. Wenn ich das probiere, was du geschrieben hast (was ich schon gemacht hab), nämlich das hier


Tu = verts[i].X;
Tv = verts[i].Y; 

dann hab ich keine Box mehr, sondern nur noch ein paar komisch überkreuzte Dreiecke oder so...schwer zu erklären...

28.01.2005 - 15:53 Uhr

Hi danke für die Hilfe nur will noch nicht ganz. Irgendwie wirds immer anders als ich will. Und dabei möchte ich doch nur die Textur auf jeder Seite haben 🙁

Kann mal jemand n Beispiel sagen, welche Koordinaten ich da zuweisen muss? Ich krieg das nich hin...