Laden...

Forenbeiträge von David_pb Ingesamt 78 Beiträge

14.08.2009 - 08:45 Uhr

Wie kann ich jedoch dafür sorgen, dass ein Rechteck ständig rotiert, wie bei diesem Snake Spiel? Oder denke ich viel zu kompliziert? Gibt es dafür möglicherweise fertige Funktionen, mit dem man dies realisieren kann?

Die Winkelangabe bei RotateAt variabel machen und pro Renderiteration aktualisieren.

11.08.2009 - 22:38 Uhr

Du kannst über die Methode GetType den Typ deiner Instanz bekommen und dann per GetProperties() die Liste der verfügbaren Properties abfragen.

09.08.2009 - 13:28 Uhr

Oder so:

public static int TotalMonths(DateTime from, DateTime to)
{
      int result = ( to.Year - from.Year ) * 12 + to.Month - from.Month;
      return to.Day < from.Day ? result-1 : result;
}
08.08.2009 - 15:48 Uhr

Steht auch in der msdn:

Wenn Sie die BinaryFormatter-Klasse oder die SoapFormatter-Klasse zum Serialisieren eines Objekts verwenden, können Sie mit dem NonSerializedAttribute-Attribut das Serialisieren eines Felds verhindern. Sie können dieses Attribut z. B. verwenden, um die Serialisierung von vertraulichen Daten zu verhindern.

Die Zielobjekte des NonSerializedAttribute-Attributs sind öffentliche oder private Felder einer serialisierbaren Klasse. In der Voreinstellung sind Klassen nicht serialisierbar, es sei denn, sie sind mit dem SerializableAttribute markiert. Während des Serialisierungsvorgangs werden in der Voreinstellung alle öffentliche und privaten Felder einer Klasse serialisiert. Mit NonSerializedAttribute markierte Felder werden aus der Serialisierung ausgeschlossen. Wenn Sie die XmlSerializer-Klasse zum Serialisieren eines Objekts verwenden, können Sie die XmlIgnoreAttribute-Klasse verwenden, um dieselbe Funktionalität zu erreichen. Sie können auch die ISerializable-Schnittstelle implementieren, um den Serialisierungsvorgang explizit zu steuern. Beachten Sie, dass Klassen, die ISerializable implementieren, dennoch mit SerializableAttribute markiert werden müssen.


[XmlIgnoreAttribute] 
public bool IsDisposed
{
   get { return mIsDisposed; }
}
11.03.2009 - 15:00 Uhr

Ansonsten könntest du versuchen mehrere Jobs parallel laufen zu lassen.

11.03.2009 - 14:33 Uhr

Das liegt einfach daran, dass du vermutliche eine Schriftart verwendest deren Zeichen nicht alle die selbe Breite haben...

11.03.2009 - 13:58 Uhr
string.Format( "{0,-10} ist angemeldet!", name ) 
11.03.2009 - 13:43 Uhr

Dann schau nochmal was "Golo Roden" geschrieben hat...

11.03.2009 - 13:38 Uhr

Aber o.Count bleibt nach erhöhen bei "0". was nu?

Siehe oben! :p

11.03.2009 - 13:37 Uhr

Richtig wäre meiner Meinung nach:

  
ObjValues o = list[0];  
o.Count++;  
list[0] = o;  
  

Korrekt!

11.03.2009 - 13:35 Uhr

Ganz einfach:


if ( string.Compare( groß, klein, true ) == 0 )
11.03.2009 - 13:33 Uhr

Du müsstest also eine Hilfsvariable anlegen:

Und wieder zurückschreiben...

11.03.2009 - 13:29 Uhr

Hast du das ganze im Release Compilat getestet?

07.03.2009 - 16:24 Uhr

Tipp:


Color c = ColorTranslator.FromHtml( "#f0f8ff" );
string x = ColorTranslator.ToHtml( c );
c = ColorTranslator.FromHtml( "Aliceblue" );
x = ColorTranslator.ToHtml( c );
07.03.2009 - 10:32 Uhr

ja schon aber da steht ja net was die verschiedenen Parameter bewirken oder?

Doch, da steht u.A. genau das.

06.03.2009 - 22:18 Uhr

Drückt eigentlich irgendjemand auch mal F1?

06.03.2009 - 18:14 Uhr

Die Punkte die das Parallelogram aufspannen in das du blitten willst. Aber das brauchst du in dem Fall garnicht. Ich würde verwenden: Graphics..::.DrawImage Method (Image, Rectangle, Int32, Int32, Int32, Int32, GraphicsUnit, ImageAttributes).

06.03.2009 - 17:51 Uhr

Du kannst die Attribute bei DrawImage mit geben.

06.03.2009 - 15:06 Uhr

die interpolationsmethode würde ich nach flüchtigem überfliegen sagen.

Sehr sinnig...

06.03.2009 - 14:51 Uhr

Schau mal hier im vorletzen Beitrag:


>

Was ist der Vorteil gegenüber meiner Methode?

06.03.2009 - 14:03 Uhr
Bitmap result = keepAspect ?  
        new Bitmap( srcRect.Width, srcRect.Height, src.PixelFormat ) : new Bitmap( size.Width, size.Height, src.PixelFormat );  

wo liegt der unterschied zwischen true/false?

Schau halt nochmal genau hin! 😃

06.03.2009 - 13:39 Uhr

Alternativ könnte ein Pixelformat mit Alphakanal bessere Ergebnisse bringen.

06.03.2009 - 11:07 Uhr

Da steht alles was du über PCX wissen musst: http://www.qzx.com/pc-gpe/pcx.txt

06.03.2009 - 10:56 Uhr

Sowas?


public static Image ScaleBitmap( Image src, Size size, bool keepAspect )
    {
      if ( src == null )
        throw new ArgumentNullException( "src" );

      if ( size.Width == 0 || size.Height == 0 )
        throw new ArgumentException( "invalid image size" );
      
      float sx = 1f;
      float sy = 1f;

      if ( src.Width > 0 )
        sx = ( float )size.Width / src.Width;

      if ( src.Height > 0 )
        sy = ( float )size.Height / src.Height;

      if ( keepAspect )
        sx = sy = Math.Min( sx, sy );

      Rectangle srcRect = Rectangle.Round(new RectangleF( 0f, 0f, ( float )src.Width * sx, ( float )src.Height * sy ));
      Bitmap result = keepAspect ?
        new Bitmap( srcRect.Width, srcRect.Height, src.PixelFormat ) : new Bitmap( size.Width, size.Height, src.PixelFormat );

      using ( Graphics g = Graphics.FromImage( result ) )
      {
        g.DrawImage( src, srcRect );
      }

      return result;
    }
27.08.2008 - 10:44 Uhr

Hier mal meine Version (für HLS mit 0-1 statt 0-360), ist ja aber nur gering unterschiedlich.


public static Color ToColor(HSL c)
    {
      float r = 0, g = 0, b = 0;

      if( c.L != 0 )
      {
        if( c.S == 0 )
        {
          r = g = b = c.L;
        }
        else
        {
          float t1 = c.L <= .5f ? c.L * (1.0f + c.S) : c.L + c.S - (c.L * c.S);
          float t2 = 2.0f * c.L - t1;
          float[] t3 = new float[] 
          {
            c.H + 1.0f / 3.0f,
            c.H,
            c.h - 1.0f / 3.0f
          };

          float[] result = new float[] { 0, 0, 0 };

          for( int i = 0; i < result.Length; ++i )
          {
            if( t3[i] < 0 )
              t3[i] += 1.0f;

            if( t3[i] > 1 )
              t3[i] -= 1.0f;

            if( 6.0f * t3[i] < 1.0f )
              result[i] = t2 + (t1 - t2) * t3[i] * 6.0f;
            else if( 2.0f * t3[i] < 1.0f )
              result[i] = t1;
            else if( 3.0f * t3[i] < 2.0f )
              result[i] = (t2 + (t1 - t2) * ((2.0f / 3.0f) - t3[i]) * 6.0f);
            else
              result[i] = t2;
          }

          r = result[0];
          g = result[1];
          b = result[2];
        }
      }

      return Color.FromArgb((int)(255.0f * r), (int)(255.0f * g), (int)(255.0f * b));
    }

Mein Ergebnis:

09.05.2008 - 15:00 Uhr

Achso, ich dachte er redet von C++. 😛

09.05.2008 - 14:09 Uhr

Die Struktur ist zweimal von nöten!

14.01.2008 - 14:32 Uhr

Versuchs mal ohne "MakeTransparent".

18.12.2007 - 09:56 Uhr

Nur so als Tipp. Einige Stellen im Code sind etwas suboptimal gelöst. Du könntest z.B. die Methode "Verbindung_aufbauen()" von den privaten Feldern loslösen:


private bool Verbindug_aufbauen()
{
  try
  {
    Network_Client = new TcpClient(this.KServername, this.KPort);
    return true;
  }
  catch 
  {
    return false; 
  }
}

Dann kannst du bei deiner Methode "Erstanmeldung()" das Feld mit dem Rückgabewert setzen:


// ...
KVerbunden = Verbindung_aufbauen();

if ( KVerbunden )
{
  // tu dies
}
else
{
  // tu das
}

Damit hast du dir einen Funktionsaufruf gespart sowie dein If-Statement auf ein if-else eingeschränkt (bool bietet ohnehin nicht mehr als true/false).

17.12.2007 - 11:19 Uhr

Und wie frage ich den genutzten Port ab? Ich würde das gerne loggen wer wann auf welchem Port aktiv war.


int port = DeinIPEndPoint.Port

Danke 😄

Bitte.

17.12.2007 - 11:16 Uhr

Ja, in der Tat. Aber (angenommen) man will den aufrufenden Thread nicht blockieren...

17.12.2007 - 10:42 Uhr

Du kannst den zweiten Parameter des Konstruktors von IPEndPoint (port) auf 0 setzen. Dann bekommst du einen beliebigen Port der noch zur Verfügung steht.

17.12.2007 - 10:38 Uhr

Besser Control.BeginInvoke statt Control.Invoke!

17.12.2007 - 10:35 Uhr

Habe ich irgendwas übersehen?

Ja:


DeineForm.Controls.Add(DeinControlElement);

[edit]
zu spät! 🙂
[/edit]

15.12.2007 - 16:27 Uhr

danke schonmal

Bitte, aber immer! 🙂

15.12.2007 - 16:22 Uhr

Equivalent dazu gibt es die Eigenschaft Displayed auch für Objekte der Klasse DataGridViewRow.

Fassen wir also zusammen:


private bool IsCellDisplayed( int x, int y )
{
        return dataGridView1.Columns[ x ].Displayed && dataGridView1.Rows[ y ].Displayed;
}

15.12.2007 - 16:14 Uhr

Nimm doch die Komponente VScrollBar. Die kannst du ganz frei Positionieren. Oder was genau ist dein Problem?

15.12.2007 - 16:11 Uhr

Ich kann auf dem Bild leider nicht besonders viel erkennen und deshalb dein Problem nicht nachvollziehen!

14.12.2007 - 15:00 Uhr

Du könntest die Grafik ja in kleine Bereiche unterteilen und für jeden Bereich den Algorithmus aufrufen.

14.12.2007 - 13:23 Uhr

😁 ihr habt recht das ist echt einfacher ! Werde in zukunft dann doch immer diese art verwänden.

Danke euch zwei

MFG

BlauBär

Wieso nicht auch in der Gegenwart?

14.12.2007 - 13:20 Uhr

So in der Art:


string line = ( string )listBox1.SelectedItem;

14.12.2007 - 13:10 Uhr

Jedweder Vergleichsoperator scheitert in der Verwendung im Zusammenhang mit Generics!

14.12.2007 - 12:44 Uhr

Das is im Normalfall eine gestrichelte Linie mit einer Pfeilspitze auf Seiten der Klasse, welche die Abhängigkeit verursacht.

14.12.2007 - 12:34 Uhr

Ohne den Code zu kennen würde ich sagen: Form3 und Form4 eine Komposition, evtl nur eine Aggregation. Form1 und Form4 maximal eine Abhängigkeit.

14.12.2007 - 12:16 Uhr

Ja, das geht. Aber wieso verwendest du nicht einfach eine Listbox? Da geht das auch und noch dazu sehr viel einfacher!

14.12.2007 - 11:54 Uhr

Komposition heißt die Beziehung.

14.12.2007 - 11:49 Uhr

Du könntest das ListViewItem an die entsprechenden Funktionen übergeben.

14.12.2007 - 11:35 Uhr

Sowas?


class foo<T> where T: struct
{}