OK, habs jetzt zum laufen bekommen. Aber warum geht das nicht ohne dieses Namespace zeugs. XPath an sich ist doch eindeutig oder?
Hey,
ich habe grad ein ähnliches Problem. Allerdings weiß ich nicht was Namespace umschreiben bedeutet oder wie ich das lösen kann.
Kann mir jemand einen Hint geben?
Ich hab das using jetzt weggemacht aber es geht immer noch nicht.
Ich habe das ganze nochmal vereinfacht, vlt sieht jemand jetzt den Fehler:
var prov = new ScreenshotImageProvider (handle);
for (int i = 0; i < 100; i++)
{
var b = prov.NextImage ();
var file = path + "image" + i + ".bmp";
b.Save (file);
Thread.Sleep (300);
}
gibt:
Allgemeiner fehler in GDI+.
Der Screenshot wird über
Graphics.CopyFromScreen (left, top, 0, 0, new Size (width, height));
erzeugt.
Das Bild ist eigentlich ein Screenshot, zu Testzwecken wird es aber aus einer png-Datei geladen. Daran liegt also cicht.
Was mir gerade auffällt.
Ich benutze das Bitmap vorher in einem using-Block. Der gibt ja normalerweise hinterher die Resourcen frei. Könnte das das Problem sein?
Hey,
ich habe nen ganz einfachen Code:
string filename = string.Format ("image{0}.png", i);
Log.Debug (filename);
tmp.Save (filename, System.Drawing.Imaging.ImageFormat.Png);
Dabei bekomme ich allerdings ne Exception:
ArgumentException wurde nicht behandelt: ungültiger Parameter.
Mehr infos gibts nciht und ich hab jetzt schon ewig rumprobiert und im Netz gesucht.
Habt ihr vlt ne Idee woran das liegen könnte?
Ich versuche das nochmla genauer zu beschreiben:
Die eigentliche Funktionalität des Export soll in eigenen Klassen liegen, die z.B. von IExporter ABgeleitet werden.
IExporter
{
void Export (IList<string> items);
}
Weiterhin soll es Presets geben, die bestimmte Eigenschaften des Export speichern. Z.B. für einen Export auf die Festplatte das Zielverzeichnis, bei einem Export zu Flickr den Anmeldename, das Zielalbum usw.
Jetzt is meine Frage, wie ich die Informationen, die ja auch an die Exportklasse übergeben werden müssen, dort hinaein bekomme, weil ja IExporter in der Export-Methode nur einen parameter hat. Ein Paramater-Array würde schon gehn, aber gutes Design sieht anders aus.
Ist das Problem jetzt klar?
Hey,
aus einem Programm möchte ich Fotos exportieren. Da soll an verschiedene Services möglich sein, z.B. Flickr, die Festplatte, Webgallery...
Die einzelnen Services sollen als Erweiterungen modular aufgebaut sein.
Weiterhin möchte ich, dass es möglich ist für jeden Service mehrere Presets zu erstellen, z.B. Speicherort, Albenverknüpfungen usw.
Ich habe schon ein bisschen rumprobiert, habe aber Probleme, die Funktionalität des Export zu den einzelnen Services von dem der Presets zu trennen.
Habt ihr Vorschläge nach welchen Entwurfsmustern ich das beschriebene Problem lösen könnte?
Vielen Dank!
das gibt ergibt noch andere Möglichkeiten
TestEnum a = TestEnum.ABC;
TestEnum b = TestEnum.ABC | TestEnum.DEF | TestEnum.GHI;
bool c = (a & b) > 0;
In b sind alle aktzeptierten Werte gespeichert. Ob a einen Wert aus b enthält lässt sich einfach prüfen.
Danke euch allen.
Flags waren das was ich gesucht habe 🙂
Hi,
warscheinlch ist das ganze einfach, habe aber trotzSuche nichts zum Thema gefunden.
Angenommen ich habe eine Variable einer Enumeration (TestEnum a = TestEnum.ABC).
Jetzte möchte ich mit die Entscheidung treffen, ob a zu einer bestimmten Gruppe von Enumerationswerten dazugehört. Z.B.:
//b = true;
bool b = (a == TestEnum.ABC || a == TestEnum.DEF || a == TestEnum.GHI);
//b = false;
bool b = (a == TestEnum.DEF || a == TestEnum.GHI || a == TestEnum.JKL);
Gibt es eine Möglichkeit die Abfrage zu verkürzen (logische Operatoren?!) oder eine einfachere Möglichkeit zur Prüfung ob eine Variable zu einer Menge von Enumerationswerten dazugehört?
Vielen Dank.
Original von herbivore
hast du schon auf
> geguckt?
Ja, hab ich. Allerdings auch nur die beiden gefunden.
Hallo,
ich brauche für ein Projekt ein Control, mit dem ich leicht Quellcode highlighten und darstellen kann. Das ganze sollte weiterhin kostenlos sein.
Auf meiner Suche bin ich auf zwei Komponenten gestoßen. Zum einen den Code-Editor von SharpDevelop und zum anderen den aus der Fireball-Libary.
Allerdings gibt es zu keiner Komponente eine ausreichende Dokumentation.
Kennt jemand eine weiter Komponente oder Beispielanwendung, mit der man sich die Benutzung anschauen könnte.
Vielen Dank schonmal.
Hallo,
ich möchte in einem Programm eine Übersicht von Bildern aus einem Ordner anzeigen lassen. (So wie hier im rechten Teil der Oberfläche: http://f-spot.org/Image:Main-window.png)
Ich möchte also ein Control das eine Liste von Bilder anzeigt. Dazu habe ich jetzt ein paar Fragen bezüglich des Aufbaus.
Da ich zu jedem Bild mehr Informationen anzeigen will will ich für jedes Bild ein einzelnen Control verwenden. Diese Controls sollen dann von dem Übergeordneten angeordnet werden.
Haltet ihr das für sinnvoll oder sollte ich alles von dem großen Teil zeichnen lassen?
Wenn ich jedes Bild in einem extra Control anzeige: Ist es sinnvoller für die Anzeige eine PictureBox nehme oder das Bild per Hand zeichne? Was ist aus Speicher- bzw. Rechenzeitlicher Sicht zu empfehlen?
Danke schonmal.
Hallo,
ich habe eine Klasse, die von XmlElement abgeleitet ist. Sie fügt nur einige Properties ein, die auf Attribute des Knotens zugreifen.
Jetzt habe ich einen string, der XML enthält. Mit diesem möchte ich eine Instanz meine Klasse erzeugen.
Gibt es dafür eine andere Möglichkeit als einen eigenen Cast-Operator zu schreiben?
MfG ThePaul
Unter http://www.componentfactory.com/blog.php?subaction=showfull&id=1172933114&archive=&start_from=&ucat=5& gibt es ne kostenlose Beta von einem solchen Control.
Nach dem öffentlichen Test wird das aber bestimmt auch kommerziell.
der schlüssel dürft die Benutzung von unsafe-Code sein:
Hier mal 2 Links die ich auf die schnelle gefunden habe:*http://www.codeproject.com/csharp/quickgrayscale.asp *http://www.codeproject.com/cs/media/csharpgraphicfilters11.asp
Hallo,
ich versuche gerade einen einfachen Client zu schreiben, der mit einem von mir geschriebenen Server kommuniziert.
Grundlegend dafür ist eine Klasse, die auf einem Socket aufbaut und Daten versenden und empfangen kann. Wenn Daten empfangen werden wird ein Event gefeuert.
Dieses wollte ich in einer WinForms-Anwendung abfangen. Allerdings wird die erhaltene Nachricht nicht angezeigt, sie wird aber vom Socket empfangen und das Event wird ebenfalls gefeuert.
Die AsyncSocket-Klasse
/// <remarks>
/// AsyncSocket is the class that communicates with the server.
/// </remarks>
public class AsyncSocket
{
private Socket _socket;
private Decoder _decoder = Encoding.UTF8.GetDecoder();
private UTF8Encoding _utf = new UTF8Encoding();
private byte[] _buff = new byte[4096];
private Stream _stream;
/// <summary>
/// Occurs when a connection is established with a server.
/// </summary>
public event EventHandler Connection;
/// <summary>
/// Occurs when a message has been received from the server.
/// </summary>
public event EventHandler<MessageEventArgs> Message;
/// <summary>
/// Initializes a new instance of the <see cref="AsyncSocket"/> class.
/// </summary>
public AsyncSocket ()
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
/// <summary>
/// Establishes a connection to the specified remote host.
/// </summary>
/// <param name="hostname">Hostname to connect to</param>
/// <param name="ssl">Is this connection to be encrypted?</param>
public void Connect(string hostname)
{
IPHostEntry ip = Dns.GetHostEntry(hostname);
IPEndPoint ep = new IPEndPoint(ip.AddressList[0],5222);
_socket.Connect(ep);
if (_socket.Connected)
{
_stream = new NetworkStream(_socket);
}
_stream.BeginRead(_buff, 0, _buff.Length, new AsyncCallback(Receive), null);
OnConnect();
}
/// <summary>
/// Closes the current socket.
/// </summary>
public void Close()
{
_socket.Close();
}
/// <summary>
/// Writes data to the current connection.
/// </summary>
/// <param name="msg">Message to send</param>
public void Write(string msg)
{
byte[] mesg = _utf.GetBytes(msg);
_stream.Write(mesg, 0, mesg.Length);
}
private void OnConnect()
{
if (Connection != null)
{
Connection(this, EventArgs.Empty);
}
}
private void OnMessage(String message)
{
if (Message != null)
{
Message(this, new MessageEventArgs(message));
}
}
private void Receive(IAsyncResult ar)
{
try
{
int rx = _stream.EndRead(ar);
char[] chars = new char[rx];
_decoder.GetChars(_buff, 0, rx, chars, 0);
string msg = new string(chars);
_stream.BeginRead(_buff, 0, _buff.Length, new AsyncCallback(Receive), null);
OnMessage(msg);
}
catch (SocketException e)
{
}
catch (InvalidOperationException e)
{
}
}
/// <summary>
/// Gets the current status of the socket.
/// </summary>
public bool Connected
{
get { return _socket.Connected; }
}
}
Und das Formular:
public partial class TestForm : Form
{
AsyncSocket stream;
public TestForm()
{
InitializeComponent();
stream = new AsyncSocket();
stream.Connection += new EventHandler(stream_Connection);
stream.Message += new EventHandler<MessageEventArgs>(stream_Message);
try
{
stream.Connect("127.0.0.1");
}
catch (Exception ex)
{
richTextBox1.AppendText(ex.Message+"\n");
throw;
}
}
void stream_Connection(object sender, EventArgs e)
{
button1.Enabled = true;
}
void stream_Message(object sender, MessageEventArgs e)
{
richTextBox1.AppendText(e.Message + "\n");
}
private void button1_Click(object sender, EventArgs e)
{
stream.Write(textBox1.Text);
}
}
Danke,
funktioniert jetzt wunderbar. Ich habe wohl die Hilfe in Sachen is-Operator falsch verstanden.
Danke nochmal.
MfG ThePaul
ich habedas ganze nochmal ganz grob implementiert. Code ist im Anhang. Allerdings funktioniert es immer noch nicht.
Original von svenson
Das Interfacé, welches vom Hauptprogramm genutzt und vom Plugin implementiert wird, muss als eigenständiges Assembly (Dll) vorliegen (nix drin außer Interface).
Ist so. sollte auch nicht das Problem sein.
Ich hbae jetzt sichergestellt, dass die gleicher Version der Assambly verwendet wird. Die Namespaces sind auch gleich und es gibt nur ein Interface IRenderer.
Habt ihr noch irgendwelche Ideen, woran das scheitert?
also isValidPlugin() gibt auf jeden Fall true zurück.
Das Problem ist wahrscheinlich die Version der Bibliothek, in der IRenderer liegt. Das Projekt liegt zusammen dem der Oberfläche und der PLugins in einem VS-Projekt.
- Projekt (VS-Projektmappe)
- Bibliothek A (u.a. IRenderer)
- verschiedene Pluginbibliotheken B (Abhängigkeit auf A gesetzt)
- UI (Abhängigkeit auf A und B gesetzt)
Deshalb gehe ich eigentlich davon aus, das immer die aktuellste version beim kompilieren genutzt werden sollte.
MfG ThePaul
Hallo,
ich möchte in einem Programm prüfen, ob eine Klasse ein bestimmtes Interface implementiert.
Dafür benutze ich, wie hier beschrieben, das is-Schlüsselwort. Allerdings wird nie in die Abfrage gesprungen.
ein Codeausschnitt:
if (isValidPlugin(plugin))
{
if (plugin is IRenderer)//Bedingung wird nie erfüllt
registerPlugin(plugin);
}
MfG ThePaul
Hallo,
ich habe ein Programm, dass durch Plugins erweiterbar ist. Jedes Plugin soll in einen seperaten Unterordner des Anwendungsordners liegen.
Allerdings benötigt jedes Plugin bestimmte Dateien (Bibliotheken, die von Host und Plugin gebraucht werden) die schon im Anwendungsverzeichnis liegen.
Muss ich diese auch in jedes Pluginverzeichnis kopieren oder reichtb es wenn sie vom Host-programm geladen werden?
Ich danke schonmal für alle Antworten. Da ich jedoch zur Zeit keinen privaten Internetanschluss besitze kann ich nicht zeitnah antworten. (Frühestens Montag)
MfG ThePaul
soweit ich weiß sind im Windows COmmunication Framework Funktionen zum AUfbau von P2P-Netzen vorhanden.
Hoffe das hilft dir weiter!
ThePaul
nach langer zeit nochmal ich!
ich habe nochmal ausführlich probiert, bei mir geht es aber immer noch nicht.
Mein Code (einfach ein neues Formular erstellen, ein Button und ein Panel drauf und bei dem Panel Autosize auf true):
for (int i = 0; i < 10; i++)
{
Graphics g = panel1.CreateGraphics();
//Mit Zeichnen Gehts nicht :(
//g.FillRectangle(new SolidBrush(Color.DarkCyan), 10, i * 100 + 10, 100, 90);
//Mit Button gehts
Button b = new Button();
b.Text = i.ToString();
b.Location = new Point(10, i * 100 + 10);
b.Size = new Size(100, 90);
panel1.Controls.Add(b);
}
danke für die super schnelle antwort.
zu 1.: die Eigenschaft hilft mir nicht. Hat noch jemand ne Idee welche Eigenschaft das sein könnte
zu 2.: Was für einen Punkt muss da übergeben?
Hi,
ich habe ein Panel, in das ich je nach Benutzereingabe mal mehr oder weniger zeichnen. deshalb wollte ich mittels Autoscroll(falls nötig) einen Scrollbar anzeigen lassen.
Allerdings habe ich festgestellt, dass der nur angezeigt wird, wenn ich Controls in das Panel schiebe. Zeichnen reicht nicht!
Wie kann ich das umgehen?
MfG ThePaul
Hi,
ich arbeite mich gerade in die WPF-Materie ein und wollte mal ein eigenes Control entwickeln.
Ich hab im Internet keine Anleitung gefunden, deshalb frag ich hier nach.
Also, kennt jemand ein Einführung zur Komponentenerstellung unter WPF?
Vielen Dank schonmal!
ThePaul
ich baus mal ein. Geb dir dann Rückmeldung!
Hab nur im mom ziemlich Stress mit der Schule!
mh,
also DataAvailable gibts nur beim NetworkStream.
Wie baue ich dann die Schleife auf?
while (NetworkStream.DataAvailable) {...}
was nehme ich dann anstatt Peek()?
das hier ist der teil, der im Thread abläuft. Wie gesagt, ich empfange immer nur eine Nachricht
try
{
Streamreader sr = new StreamReader(_client.GetStream());
while(sr.Peek() != -1)
{
this.parseMessage(sr.ReadLine());
}
}
catch (Exception ex)
{
throw;
}
Hi,
ich habe ein Problem mit dem Empfangen von Daten mit dem TcpClient-Object.
Ich erstelle vom Stream des TcpClients eine Streamreader-Instanz.
mit dem Streamreader kann ich jetzt Daten empfangen. Aber was mache ich, wenn ich nicht nur einmal sondern mehrmals empfangen will? Ich sende immer eine Nachricht an den Server, und warte dann auf die Antwort.
Ich bekomme aber immer nur eine Nachricht, obwohl auch eine zweite kommen müsste. (Meine nachrichten gehen korrekt weg. Daran liegts nicht.)
Danke für die Antworten.
MfG ThePaul
Hi,
ich habe gestern was von der Objektdatenbank db4o (http://db4o.com/) gelsen und das gleich mal ausprobiert.
Das ganze ist total simpel: ZUm speichern schreibt man einfach DB.Set(Object);
Auslesen ist genauso simpel. Nebenbei soll das ganze noch viel schneller sein als mit relationalen Datenbanken.
Meine Frage: Wenn man hier im Forum guckt, benutzt der Großteil relationale Datenbanken. Warum nimmt man nicht die Objekt-datenbank, womit "alles" einfacher und schneller geht?
Hi,
ich habe mir eben die FeatureTour von SharpDevelop 2 angeschaut (http://www.icsharpcode.net/OpenSource/SD/Tour/)
Ich habe es noch nicht getestet, die Funktionen erinnern aber sehr an VisualStudio, obwohl man ja keine Konkurenz sein will 😉
Hat schon jemand Erfahrungen mit der Version gemacht?
lg Paul
Hi,
ich muss morgen einen Vortrag über ein Programm halten.
Ich weiß nur nicht, wie ich einen Typ (System.Reflecton.Type) beschreibt.
Könnt ihr mir da helfen?
MfG ThePaul
Die Exception kommt genau bei der Zeile Zeile!!!
for (int i = 0; i < _libary.ImageCount; i++)
{
_libary[i].Data.Add(false); //Hier kommt die NullReference Exception
}
Data ist dabei die Arraylist.
Und die Klasse enthält das Bild und Zusatzinfos.
Original von herbivore
AL.Add(true);
oder
AL.Add(false);
Funktioniert bei mir nicht 🙁 KOmmt immer noch die Exception.
Ich denke das ne ArrayList das Einzig mögliche ist. Bin grad dabei mein Mosaik-Programm zu verbessern. Dazu möchte ich die Möglichkeit haben zu jedem Bild beim Zeichen zusätzliche Infos anzugeben. Da das einmal ein bool oder ein Point, oder auch mal mehreres sein können, erscheint mir eine ArrayList als einzig mögliches (bzw. als einfachstes.)
so ähnlich dachte ich mir das auch.
Aber wie bekomme ich erstmal eine Boolean (mit Wert) in die ArrayList geschrieben?
AL.Add(new bool());
so gehts nicht, auch nicht wenn ichs vorher in ein Object caste. Es kommt immer die Exception.
Bei deinem Code oben beachtest du doch auch nicht, das alles in der Al als Object gespeichert wird!? 🤔
Original von herbivore
BTW: Verwende besser List <bool> statt ArrayList.
kann ich schlecht, weil ich unterschiedliche infos darin speichern will. Kann also auch mal ne komplett andere KLasse sein.
Zu der Exception: Ich hab mich vielleicht falsch ausgedrückt. Es geht mir nicht vorrangig um die Exception, sondern ich möchte wissen, wie ich einer ArrayList eine bool-Variable zuweise und deren Wert ändern kann.
MfG ThePaul
HI,
ich habe in einer Klasse eine ArrayList um zusätzliche Infos speichern zu können.
jetzt möchte ich darin eine bool-Variable ablegen. Es kommt aber jedesmal der Fehler "Objekt wurde nicht auf eine Objektinstanz festgelegt".
Kann ich das irgendwie machen oder ist das mit bool nicht möglich?
fg ThePaul
ich würde es noch klasse finden, wenn man aus den todos gleich noch eine changelog erstellen könnte
ist er hier angemeldet oder hat wer eine e-mail adresse?
Gibt es für das Problem noch andere Lösungen?
Das funktioniert auch bei mir 😉
Im richtigen Projekt gehts aber immer noch nicht 😦, es ist zum heulen
ich hab das jetzt reingebaut, es funktioniert allerdings immer noch nicht 🙁
Wo muss ich das return true hinsetzen? in jedes case?
muss ich die KeyDown-Ereignisse wieder abmelden?
MfG ThePaul
Original von der Marcel
Hi thepaul!Bei mir wird das KeyDown-Event bei den Pfeiltasten gefeuert. Welche framework-Version verwendest du? Ansonsten müsstest du in den Event-Mechanismus der Form eingegriffen habe...
der Marcel
ich verwende 2.0. Hatte ja oben schon geschrieben, dass bei einem neuen Projekt alles funktioniert hatte.