Laden...

Forenbeiträge von (8(|) Ingesamt 39 Beiträge

15.10.2005 - 14:38 Uhr

c# ist kein marketing, c# ist eine programmiersprache für das .NET framework, welches eine gemeinsame klassenbibliothek für einen ganzen haufen von programmiersprachen bietet.

es ist eine neue programmiersprache, die , wie hier schon beschrieben, andere einsatzfelder hat als c++. z.b. wird c++ nicht so oft in kritischen bereichen z.b. banken verwendet, weil es zu unsicher ist. dort kann man c# gut einsetze, im moment wird aber noch sehr viel mit java gemacht.

c# basiert auf c++. ob es jetzt besser ist als c++, kann man nicht sagen. es ist in manchen bereichen geeigneter, in anderen wiederum nicht.

14.10.2005 - 16:30 Uhr

salve

ich möchte ein wenig in die materie der grafikprogrammierung mittels directx eintauchen, habe mir dazu das directX SDK besorgt. desweiteren habe ich mich auch durch das directx tutorial von hauptmann durchgeschlagen, bis zu dem punkt , an dem matrizen behandelt werden, also gezeichnete objekte quasi gedreht werden.

in dem sdk tutorial 1 wurde ein fenster mit blauem grund erzeugt und un tutorial 2 ein dreieck gezeichnet.
schön und gut, habeich hinbekommen und kann es auch einigermaßen nachvollziehen.
doch wenn es um bewegung geht, komme ich nicht mehr weiter. leider beschreiben das sdk tutorial und hauptmanns es für mich nicht leicht genug.

vor allem der sprung von teil 2 zu 3 ist schwer.
hier einmal der code aus dem 2ten teil, der ein dreieck rendert:


//-----------------------------------------------------------------------------
// File: Vertices.cs
//
// Desc: In this tutorial, we are rendering some vertices. This introduces the
//       concept of the vertex buffer, a Direct3D object used to store
//       vertices. Vertices can be defined any way we want by defining a
//       custom structure and a custom FVF (flexible vertex format). In this
//       tutorial, we are using vertices that are transformed (meaning they
//       are already in 2D window coordinates) and lit (meaning we are not
//       using Direct3D lighting, but are supplying our own colors).
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
using System;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace VerticesTutorial
{
	public class Vertices : Form
	{
		// Our global variables for this project
		Device device = null; // Our rendering device
		VertexBuffer vertexBuffer = null;

		public Vertices()
		{
			// Set the initial size of our form
			this.ClientSize = new System.Drawing.Size(300,300);
			// And its caption
			this.Text = "Direct3D Tutorial 2 - Vertices";
		}
		
		public bool InitializeGraphics()
		{
			try
			{
				// Now let's setup our D3D stuff
				PresentParameters presentParams = new PresentParameters();
				presentParams.Windowed=true;
				presentParams.SwapEffect = SwapEffect.Discard;
				device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
				this.OnCreateDevice(device, null);
				return true;
			}
			catch (DirectXException)
            { 
                return false; 
            }
		}

		public void OnCreateDevice(object sender, EventArgs e)
		{
			Device dev = (Device)sender;
			// Now Create the VB
			vertexBuffer = new VertexBuffer(typeof(CustomVertex.TransformedColored), 3, dev, 0, CustomVertex.TransformedColored.Format, Pool.Default);
			vertexBuffer.Created += new System.EventHandler(this.OnCreateVertexBuffer);
			this.OnCreateVertexBuffer(vertexBuffer, null);
		}
		public void OnCreateVertexBuffer(object sender, EventArgs e)
		{
			VertexBuffer vb = (VertexBuffer)sender;
			GraphicsStream stm = vb.Lock(0, 0, 0);
			CustomVertex.TransformedColored[] verts = new CustomVertex.TransformedColored[3];

			verts[0].X=150;verts[0].Y=50;verts[0].Z=0.5f; verts[0].Rhw=1; verts[0].Color = System.Drawing.Color.Aqua.ToArgb();
			verts[1].X=250;verts[1].Y=250;verts[1].Z=0.5f; verts[1].Rhw=1; verts[1].Color = System.Drawing.Color.Brown.ToArgb();
			verts[2].X=50;verts[2].Y=250;verts[2].Z=0.5f; verts[2].Rhw=1; verts[2].Color = System.Drawing.Color.LightPink.ToArgb();
			stm.Write(verts);
			vb.Unlock();
		}
		private void Render()
		{
			if (device == null) 
				return;

			//Clear the backbuffer to a blue color (ARGB = 000000ff)
			device.Clear(ClearFlags.Target, System.Drawing.Color.Blue, 1.0f, 0);
			//Begin the scene
			device.BeginScene();
			
			device.SetStreamSource( 0, vertexBuffer, 0);
			device.VertexFormat = CustomVertex.TransformedColored.Format;
			device.DrawPrimitives(PrimitiveType.TriangleList, 0, 1);
			//End the scene
			device.EndScene();
			device.Present();
		}
		protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
		{
			this.Render(); // Render on painting
		}
		protected override void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e)
		{
			if ((int)(byte)e.KeyChar == (int)System.Windows.Forms.Keys.Escape)
				this.Close(); // Esc was pressed
		}

		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		static void Main() 
		{

            using (Vertices frm = new Vertices())
            {
                if (!frm.InitializeGraphics()) // Initialize Direct3D
                {
                    MessageBox.Show("Could not initialize Direct3D.  This tutorial will exit.");
                    return;
                }
                frm.Show();

                // While the form is still valid, render and process messages
                while(frm.Created)
                {
                    frm.Render();
                    Application.DoEvents();
                }
            }
		}

	}
}

im 3. teil gibt es jetzt aber einige änderungen, die ich nicht auf die reihe kriege. transformedcolored und positioncolored verstehe ich noch. woran es aber hapert sind z.b. die verts.


			verts[0].X=-1.0f; verts[0].Y=-1.0f; verts[0].Z=0.0f; verts[0].Color = System.Drawing.Color.DarkGoldenrod.ToArgb();
			verts[1].X=1.0f; verts[1].Y=-1.0f ;verts[1].Z=0.0f; verts[1].Color = System.Drawing.Color.MediumOrchid.ToArgb();
			verts[2].X=0.0f; verts[2].Y=1.0f; verts[2].Z = 0.0f; verts[2].Color = System.Drawing.Color.Cornsilk.ToArgb();

wieso sind das hier so kleine koordinaten, und nicht wie im teil davor z.b. 150 oder so und was soll das f dahinter. ic glaube das heisst float, aber kann man sich das nicht sparen ?

so das war eine neureung, jetzt die andere. bevor man rendert, wird die funktion SetupMatrices() aufgerufen, die glaube ich dafür sorgt, dass sich das objekt scheinbar dreht. dreht sich eigentlich das objekt oder dreht sich die kamera ?



			int  iTime  = Environment.TickCount % 1000;
			float fAngle = iTime * (2.0f * (float)Math.PI) / 1000.0f;
			device.Transform.World = Matrix.RotationY( fAngle );

			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 ) );
			
device.Transform.Projection = Matrix.PerspectiveFovLH( (float)Math.PI / 4, 1.0f, 1.0f, 100.0f );

also da versteh ich ja garnichts mehr. wo ist denn da irgendwo eine funktion, die das bild alle x sekunden dreht ?

und ich verstehe eigentlich die komplette funktion nicht.

vielleicht könnt ihr ja ein wenig licht ins dunkle bringen.

danke im vorraus

mfg
(8(|)

11.10.2005 - 12:31 Uhr

du musst am ende des programms seinen tcplistener zumachen:
t.stop();

(8(|)

10.10.2005 - 11:05 Uhr

System.Text.Encoding.Default sollte das richtige sein

Gruß
(8(|)

09.10.2005 - 17:52 Uhr

Hi

also du machst pro form ja eine klasse, sprich eine datei.
einmal deine mainform
und deine form, an die die parameter übergben willst.

die parameterform sieht dann ungefähr so aus


class MeineForm
{
   private string parameterKopie;
   public MeineForm(string parameter) //KOnstruktur
  {
      parameterKopie=parameter;
  }
}

von deiner hauptform, übergibst du den parameter im konstruktor:


MeineForm meineForm1 = new MeineForm("STRING-TANGA");
meineForm1.Show();

feddich

(8(|)

08.10.2005 - 15:32 Uhr

hm also wenn ich die objekte mithilfe von Items.Add() hinzufüge, stehen in der listbox die instanznamen. ich möchte aber, dass dort eine string variable des objekts steht, und wenn man dadrauf klickt, auf andre variablen des objekts zugreifen kann.

mfg (8(|)

08.10.2005 - 14:46 Uhr

huhudele

also zu meinem problemchen:
ich habe eine klasse NewsFeed, welche eine ArrayList mit lauter objekten von NewsEintrag enthält. ( es handelt sich um rss reader ). die klasse newseintrag enthält string variablen u.a. den Titel des NewsEintrags und die url.
ich befülle nun die listbox mit titeln der newseinträge. ich möchte es nun erreichen, dass , wenn ich auf einen eintrag in der liste klicke, ich auf die url variable des pbjektes zugreifen kann.
wie bewerkstellige ich das?
danke für eure hilfe

mfg (8(|)

26.09.2005 - 16:52 Uhr

ja schon klar aber das komische ist, dass ich die heise datei garnicht auslesen kann. //item z.b. funktioniert nicht.

aber ich sehe bei den dateien gar keinen großen unterschied 🙁

mfg (8(|)

21.09.2005 - 19:24 Uhr

hi leute,

ich habe den entschluss gefasst, meinen horizont ein wenig zu erweitern und wollte erstmal einen simplen rss reader schreiben.
es ist mir soweit auch geglückt mit folgendem code, alle titel vom winfuture.de rss feed zu holen:
http://www.media-designs.de/winfuture.rdf


			XmlNodeList nl = xmlread.SelectNodes("//item/title");
			foreach(XmlNode n in nl)
			{
				textBox1.Text+=n.InnerText + "\r\n";

klappt perfekt. nur wenn ich jetzt den RSS feed von heise.de auslesen will
http://www.heise.de/newsticker/heise.rdf
bleibt meine textbox leer.
woran liegt das ?

danke

14.09.2005 - 21:36 Uhr

hi

public static void Main(string[] args)

so muss deine main methode aussehen, wenn du parameter aufnehmen willst.
args[] ist dann das array mit allen parameter.
beispiel:
programm.exe bla blablabla
args[0] = programm.exe
args[1] = bla
args[2] = blablabla

zum lesen und suchen bzw schreiben in datein die klassen StreamReader und StreamWriter verwenden:
http://search.microsoft.com/search/results.aspx?qu=StreamReader&View=msdn&st=b&c=0&s=1&swc=0

mfg
(8(|)

30.08.2005 - 16:55 Uhr

ich würde gerne mitmachen. kannst mich ja mal anschreiben.
mfg
(8(|)

30.08.2005 - 16:52 Uhr

das mit der kommunikation zwischen zwei forms ist IMO die bessere lösung.
ansonstn muss die public funktion glaube ich static sein, sonst funktioniert die erste methode nicht.

mfg
(8(|)

28.08.2005 - 14:43 Uhr

wow respekt. das schaut nach einem ziemlich großen projekt aus, was wohl sehr viel arbeit mit sich gebracht hat /bringen wird.
mit gefällt die idee und die seite sehr gut. ich wünsche dir alles gute für dieses projekt.

mfg
(8(|)

25.08.2005 - 21:45 Uhr

ok.
also ich habe auf ein panel ein paar linien mit drawline gezeichnet. das ganze stellt dann insgesamt eine schaltung dar. wenn man nun mit der maus über eine linie fährt, soll in einem label ein gewisser wert (spannung,stromstärke der schaltung an dem punkt, wo sich die maus befindet) angezeigt wrrden.
reicht das ?

guten abend

(8(|)

25.08.2005 - 17:14 Uhr

ich würde auch mitmachen wollen. bin aber wie Dexter noch ein anfänger 😉
falls du für mich verwendung finden könntest, wäre das super.
wir können doch auch eine software schreiben ? oder muss es ein game sein ?

@progger: ich denke mal, dass die arbeiten über das internet synchronisiert werden.

viele grüße
(8(|)

25.08.2005 - 15:32 Uhr

kann ich die mausposition auch relativ zu einem control z.b. panel herausfinden ? oder muss ich da die differenzen berechnen ?

und: wie kann ich permanent die mausposition überprüfen und wenn sie einen bestimmten punkt erreicht hat, eine atkion ausführen ? geht das mit einem thread und einer while schleife ? oder habe ich dann CPU 100%?
danke
(8(|)

17.08.2005 - 01:29 Uhr

oh ja sowas könnte ich auch ganz gut vertragen. habe nämlich gerade aufgrund von scheinbar unüberwindbaren schwierigkeiten absolut keinen bock mehr an meinem projekt weiterzuwerkeln ^^

guten morgen 😁
(8(|)

17.08.2005 - 01:22 Uhr

naja noch habe ich ferien 😉
aber das ändert sich am 22.august 🙁

mfg und gute nacht
(8(|)

16.08.2005 - 23:51 Uhr

meiner meinung nach ist die einzige frage, die is zu beantworten gilt, die folgende:"bist du heiss aufs programmieren mit C#?"
wenn ja : fang an und warte nicht länger, jeder tag an dem du mehr C# lernst ist wertvoll.
wenn nein, dann nicht 😉

my2cents

(8(|)

15.08.2005 - 19:05 Uhr

ich gehe über einen 1024/128 Telekom dsl anschluss mit echter flat ins internet.
wir werden aber zum 18.8.(also sehr bald) auf einen lokalen anbieter umsteigen. für die, die es interessiert : es ist helinet. dort kriegen wir 1,5mbit/0,192mbit für weniger als wir jetzt für 1 mbit bezahlen.

(8(|)

15.08.2005 - 18:06 Uhr

huhu herbivore
zu deiner einen rekursiven/iterativen funktion. könntest du mir die evtl pseudo-code-technisch erläutern ? also die ganzen if /else verzweigungen?

danke

(8(|)

15.08.2005 - 14:47 Uhr

so ich habe es jetzt 2 tage lang versuch g, aber leider habe ich es noch nicht hinbekommen 🙁 . nur ansatzweise.
könntet ihr mir weitere beispiele geben, oder die anderen noch weiter ausführen ?

ich wäre euch sehr dankbar

gruß
(8(|)

14.08.2005 - 18:12 Uhr

ich kenn mich jetzt nicht so mit strings aus. aber wenn du readline benutzt, ist dann am ende nicht ein \n im string ?
vielleicht müsstest du das raustrennen.

kann auch sein, dass es totaler müll ist, aber ich kapier nicht so ganz, was dein code macht 🙂
mfg
(8(|)

achja: was für ienen fehler gibt es denn ?

14.08.2005 - 16:26 Uhr

@ alle, die beruflich programmieren : vielleicht könntet ihr ein bisschen von eurem beruf
erzählen. z.b. bei was für einer firma ihr arbeitet, welche programmiersprachen ihr benutzt, was ihr programmiert, was euer größtes projekt war, was euch an der arbeit spaß macht und was nicht, was ihr für eine ausbildung habt und und und....

das würde mir und ich denke den anderen, die sowas später auch evtl machen wollen ein paar einblicke ermöglichen.

ich bedanke mich für eure infos

mfg
(8(|)

14.08.2005 - 14:31 Uhr

ich bin freizeit-programmierer. könnte mir aber gut vorstellen, später damit geld zu verdienen.

mfg
(8(|)

13.08.2005 - 12:35 Uhr

hast du die listbox eher geaddet als die richtextbox? wenn nein, machmal, wenn ja, hab ich auch keine ahnung.

mfg

13.08.2005 - 12:31 Uhr

hi leute ich bins wieder g

ich zeichne bei meinem Programm ein paar Linien auf ein panel1. ich möchte nun, dass wenn man seine maus über die linie bewegt ein event ausgelöst wird.
gibt es sowas wie einen mousedown-eventhandler für gezeichnete linien ?
wenn nicht, muss ich dann immer die aktuelle mausposition mit den positionen der linien abgleichen ?

danke für eure hilfe

mfg
(8(|)

13.08.2005 - 00:44 Uhr

@ternanok : bei meinem windows media player steht der titel aber nicht im window name. da steht nur "Windows Media Player"

mfg

13.08.2005 - 00:42 Uhr

ich glaube das werde ich nicht verstehen 😉 .weiss zum beispiel nicht, was eine matrix ist. komme jetzt erst in die 11te.
falls du dennoch glaubst ich kriege das hin, kann ich nur darum bitten es mir zu erklären.

danke für deine hilfe

mfg
(8(|)

12.08.2005 - 20:37 Uhr

funktioniert bestens.
beide daumen hoch. dankeschön

(8(|)

edit: danke herbivore, aber ich werde glaube ich die version von Noodles benutzen, da es etwas umständlich ist, jedesmal zu casten.

12.08.2005 - 20:02 Uhr

hi leute

also ich stehe gerade vor einem problemchen.
sieht so aus: ich habe ein array von pictureboxes:


			foreach(PictureBox pic in bla.BLAAA)
			{
				
				pic.Name = "picbox";
				pic.Image = Image.FromFile("C:\\widerstand.BMP");
				pic.Size=new System.Drawing.Size(32,32);
				pic.Location= new System.Drawing.Point(x,70);
				pic.Click += new System.EventHandler(PicBoxClick);
				panel1.Controls.Add(pic);
				x=x+abStand;
			}

nun zu meinem problem. ich möchte halt, dass wenn man auf diese picturebox clickt, die funktion PicBoxClick etwas bestimmtes mit der picturebox anstellt.

void PicBoxClick(object sender, System.EventArgs e){}
sender ist bei mir aber kein control sondern object. wenn ich es caste , funzt es immernoch nicht.

jedoch funktioninert die funktion "this.Controls.Remove((Control)sender);"
aber nich z.b. (Control)sender.Name="hallomama";

ich hoffe ihr könnt mein problem nachvollziehen und mir auch bei seiner lösung helfen. vielen dank schonmal im voraus

euer
(8(|)

09.08.2005 - 21:36 Uhr

aah ich glaube solangsam kommt licht ins dunkle.
ich bin leider diese woche nochn bisi busy. ich werd dann nächste woche vorraussichtlich berichten.
vielen dank für eure hilfe

mfg
(8(|)

09.08.2005 - 17:47 Uhr

ja aber was ist, wenn der benutzer nicht widerstände, sondern nur gesamtstromstärke und teilspannungen angibt ? oder eine spannung und einen widerstand ?
so wie eine aufgabe im physikbuch 🙂

aber vielen dank schonmal für eure tips

mfg

09.08.2005 - 10:40 Uhr

Hi Leute

also ich schreibe gerade an einem programm, was dem nutzer eine reihenschaltung(später auch parallel) von widerständen darstellen und fehlende größen berechnen soll.

angenommen wir haben nun eine schaltung mit 3 widerständen. dann gibt es insgesamt die folgenden zu errechnenden bzw. voneinander abhängigen größen:

Stromstärke : I
Gesamtspannung: U
Gesamtwiderstand: R

Teilspannung : U1,U2,U3
Teilwiderstände: R1,R2,R3

U=R*I, R=U/I...
U=U1+U2+U3
R=R1+R2+R3
U1/R1 = U2/R2
U2/R1 = U1/R2
...
es gibt also eine ganze menge von abhängigkeiten, welche mir schwer zu schaffen macht.

ich möchte es nun so haben, dass der nutzer festlegt, wieviele widerstände er haben möchte(ich werde das aber wohl auf 5 max. begrenzen, bin ja nichht verrückt 😉 )
dann soll er ein paar feste größen definieren, und der rest soll ausgerechnet werden.

aber das sind für mich zuviele verzweigungen, die überprüft werden sollen, ich habe ein totales brett vor dem, so wie im kopf.

wie kann ich das am besten anstellen ?

danke für eure tips

mfg (8(|)

08.08.2005 - 12:44 Uhr

achja sorry. du musst den thread für die funktion, die gestoppt werden soll, erstellen und nicht andersrum.

mfg

08.08.2005 - 12:29 Uhr

jo ist mir auch erst später eingafallen. ich habe meinen beitrag oben editiert.

mfg
(8(|)

08.08.2005 - 12:22 Uhr

nene das hast du falsch verstanden. er meint es anders :
du definierst in deiner klasse eine BOOL variable
private BOOL darfIchWeiterMachen = true;

deine funktion die immer durchläuft pr+ft vorher ob die variable true ist, bevor sie loslegt. also:


void myFUnction()
{
darfIchWeiterMachen=true;

if(darfIchWeiterMachen==true)
....
}

und nun dein button zum abbrechen:


void OnAbbruchClick()
{
darfIchWeiterMachen = false;
}

mfg

edit: da ich glaube, dass du eine while schleife durchlaufen willst, wird der abbruch button glaube ich nicht drückbar sein, da die while schleife den thread blockiert. du musst daher für den abbruch button einen neuen thread eröffnen, der aber im prinzip das gleiche macht,wie oben beschrieben.

der neue code sieht dann wie folgt aus :


ButtonAbbruchClick()
{
Thread thread1 = new Thread(new ThreadStart(threadingFunktion));
thread1.Start();
}

void threadingFunktion()
{
Thread thisThread = Thread.CurrentThread;
darfIchWeiterMachen=false;
thisThread.Abort();

ich habe den code jetzt nicht überprüft, aber so in der art sollte das ganze schon ablaufen