Original erstellt von volkard:
[quote]
Meistens sollte es reichen, einfach die HashCodes der Attribute zu XOR-en. So wie das Beispiel für Point bei obigem Link. Ist ja auch kein großer Aufwand, aber die HashTable, wfalls Du mal eine verwenden willst, wird sehr dankbar sein.
Ok, das stimmt, das ist kein großes Problem. Danke für den Link, war genau das was ich suchte
Dank und Gruß,
Ferly
Dann erstell doch dein eigenes Control bzw erweitere Label mit OwnerDraw
Zeichne den String selber und setzte bei der Method Graphics.DrawString bei StringFormat folgenden Flag: StringFormatFlags.DirectionVertical
Original erstellt von Shade Of Mine:
Doch! Das ist der Sinn von 'Zwischen-Byte-Code' (oder wie man diese Intermediate Language auch immer nennen will)
Glaube ich nicht. Der Sinn ist IMHO nur Entwickler von Java abzuwerben, in dem eine Pseudo-Plattformunabhängigkeit angepriesen wird. Da braucht man sich ja nur diesen Artikel durchlesen, wo z.B. folgendes steht :
Auf die Öffnung des .NET-Framework angesprochen, kündigte Ballmer an, dass es sicherlich eine Common- Language-Runtime-Implementation für Unix geben werde, schränkte diese Entwicklung jedoch als Subset ein, der "nur für den akademischen Einsatz gedacht sei". Überlegungen zur Unterstützung freier .NET-Implementationen wie Mono erteilte Ballmer eine Absage: "Wir haben so viele Millionen in .NET gesteckt, wir haben so viele Patente auf .NET, die wir pflegen wollen."
Hallo Leute,
hab mal wieder ein kleines Problem, und zwar habe ich die Aufgabe zweidimensionale Geometriedaten (Punkte) aus einer Datei entsprechend den Vorgaben in einer weiteren Datei zu manipulieren. Das Programm soll aus einer Datei Punktkoordinaten einlesen. In einer anderen Datei stehen eine Reihe von Transformationsmatrizen (2x2-Matrizen), die ebenfalls eingelesen werden sollen. Eine Auswahl aus den Transformationen soll auf alle Punkte angewendet werden. Die resultierenden Punkte sollen in eine neue Datei geschrieben werden. Außerdem soll das Programm eine Tabelle ausgeben, in der die ursprünglichen (eingelesenen) Punkte neben den transformierten Punkten zeilenweise nebeneinander stehen.
Als Testdaten und für die Erzeugung des auszudruckenden Ablaufprotokolls stehen zwei Dateien (punkte.dat und transformation.dat) zur Verfügung. Zur Erzeugung des Ablaufprotokolls wenden Sie bitte die erste und die dritte Transformation in dieser Reihenfolge auf alle Punkte an! Bitte beachten Sie, daß Ihr Programm die Dateinamen auf jeden Fall von der Konsole einlesen soll und nicht mit festen Dateinamen arbeiten darf! Um die Lösung zu vereinfachen, können Sie davon ausgehen, daß in einer Datei nicht mehr als 100 Punkte (Konstante!!!) bzw. 10 (Konstante!!!) Transformationen abgespeichert sind. Außerdem können Sie davon ausgehen, daß in den Dateien nur "korrekte" Daten stehen. Die Datei "punkte.dat" besitzt folgenden Aufbau: In jeder Zeile stehen genau 2 Werte (vom Typ float). Der erste Wert ist die X-Koordinate, der zweite Wert die Y-Koordinate des Punktes. Die Datei hat maximal 100 Zeilen. Die Datei "transformation.dat" besitzt folgenden Aufbau: Jede Transformation ist gegeben durch eine 2x2-Matrix. Die erste Zeile der ersten Transformation findet sich in der ersten Zeile der Datei, die zweite Zeile der Matrix in der zweiten Zeile. Daran schließt sich in der nächsten Zeile unmittelbar die nächste Transformation an. Wenn die Datei also z.B. 16 Zeilen hat, so stellen die Werte in ihnen 8 Transformationen zu je zwei Zeilen dar. Es handelt sich alles um Werte vom Typ float. Diese Datei hat aufgrund der Vorgaben (s.o.) maximal 20 Zeilen.
Das einlesen der Dateien habe ich soweit geschafft, nun stehe ich aber davor die Transformationen mit dynamischen feldern vorzunehmen. Leider habe ich überhaupt keine Idee, wie diese Funktion aussehen könnte. Könnt ihr mir weiterhelfen?
Juhu!
Danke! Das war schon mal super!!!
Das einzige Problem ist nur noch, wenn ich die Grafik speicher, ist der Hintergrund beim dem Bitmap schwarz. Wie kann ich das ändern?
MfG
Gandi
Hi,
ich hab die Klasse MMenu rausgeschmissen und das Erzeugen der Menüs in den Konstruktor von MainWindow verschoben.
Somit kann man dann in der Click-Methode einfach mit this das MdiParent setzen.
using System;
using System.Windows.Forms;
namespace Edit
{
public class MainWindow : Form
{
public MainWindow()
{
this.Text = "main";
this.IsMdiContainer = true;
MenuItem mItem_File = new MenuItem("&File");
MenuItem mItemFile_New = new MenuItem("&New");
this.Menu = new MainMenu();
this.Menu.MenuItems.Add(mItem_File);
mItem_File.MenuItems.Add(mItemFile_New);
mItemFile_New.Click += new EventHandler(mItemFile_Click);
}
private void mItemFile_Click( object sender, EventArgs e)
{
EditWindow ew = new EditWindow();
ew.MdiParent = this;
ew.Show();
}
public static void Main()
{
Application.Run(new MainWindow());
}
}
public class EditWindow : Form
{
public EditWindow()
{
this.Text = "Edit";
}
}
}
Willst du trotzdem eine eigene Klasse fürs Menü haben, müßtest du MdiParent und die Callbackfunktion z.B. gleich im Konstruktor mitgeben. Hab ich aber noch nicht probiert.
grüße
ms
PS: Wozu brauchst du die Klasse Edit?
Das kann man so nicht sagen. Es gibt etwas weiter unten einen "Java vs C#" Thread, in dem auch ein kleiner Benchmark mit Java, C++ und C# Programm enthalten ist. Das Ergebnis kann man aber nicht wirklich ernst nehmen. Allerdings kannst du daran sehen, dass auch C++-Programme nicht automatisch schnell sind. Das kommt ganz auf den Programmierer an und darauf, ob der Programmierer den gerade benötigten Trick kennt!
Hallo,
ich möchte unter C# eine SQL-Datenbank erstellen, allerdings nicht mit dem mitgelieferten MYSQL Assistenten von .NET sondern aus meinem Quellcode herraus.
Dazu müsste ich ja erstmal eine SQLConnection erstellen und von dieser aus dann die Datenbank generieren, allerdings Funktioniert dies nicht da ich im ConnectionString einen Initial Catalog also Datenbank angeben muss. Möglicherweise ist ja auch mein kompletter Ansatz falsch aber ich hätte keine Idee wie ich das Problem ansonsten angehen könnte.
Wäre dankbar für eure Hilfe.
Danke schonmal im voraus
unter windows würd ich den windows-login-namen auslesen - das ist
relativ sicher (so sicher, wie die windowsanmeldung :),
solange du dich in einem netzwerk bewegt (zB firmennetzwerk).
such dich mal durch die msdn.