Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Muphin
Thema: Reference im Konstruktor
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für die Tipps!
Das funktioniert leider nich:

   
public class Feld
   {
      private ref bool m_loesenPressed;
   

Also bleibt mir wohl nur eine eigene bool Klasse!
Oder hat noch jemand ne andere Idee wie man das Problem lösen kann?

gruß Muphin

Thema: Reference im Konstruktor
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich hab eine übergeordnete Klasse die einen bool Member m_loesenPressed und ein Member Array aus einer anderen Klasse "Feld" hat. Im Konstruktor der übergeordneten Klasse wird dann das Array der Felder initialisiert und ich übergebe den bool Member als ref, damit bei einer änderung des bools in einem der Felder ich die Änderung auch in der übergeordneten Klasse mitbekomme. Allerdings funktioniert das nicht, der bool wird für jedes Feld getrennt behandelt und es läuft nicht so wie ich mir das gedacht hab, das es also praktisch nur ein einziges m_loesenPressed gibt und sobald sich das irgendwo ändert ich das auch an allen anderen Stellen mitbekomme. Es ist also eher so als würde ich den bool by value übergeben.

Edit:
Ich hab daneben noch eine eigene Klasse Colors von der ich eine Instanz genauso benutze, damit ich in den einzelnen Feldern und in der übergeordneten Klasse die selben Farbe zur Hand hab und mit der funktioniert das wunderbar.


public class1
{
   ...
   private Feld[,] m_fields;
   private bool m_loesenPressed;
   private Colors m_colors;
   ...

   public class1
   {
     ...
         for( int i = 0; i < 9; i++ )
         {
            for( int j = 0; j < 9; j++ )
            {
               m_fields[i, j] = new Feld( ref m_colors, ref m_loesenPressed );
            }
        }
       ...
   }
...

public class Feld
{
      ...
      private bool m_loesenPressed;
      private Colors m_colors;
      ...

      public Feld( ref bool t_loesenPressed )
      {
         ...
         m_loesenPressed = t_loesenPressed;
         m_colors = t_colors;
         ...
      }

     ...

      private void hauptfeld_TextChanged( object sender, System.EventArgs e )
      {
         m_loesenPressed = false;
      }
}

Thema: MessageBox anzeigen und bei beenden eines anderen Threads schließen
Am im Forum: GUI: Windows-Forms

Die Farbe lass ich lieber auf Control, spricht mich irgendwie eher an wie das ganze als Info einzufärben!
ControlBox auf false is ne gute Idee, danke, so hab ich schon nich n Problem irgendwie das schließen als drücken der Abbrechen Taste zu interpretieren!
Ein FixedDialog isses schon

Die VS2005ImageLibrary hab ich leider nich, wahrscheinlich wegen der Express Version!

Für das Hintergrundfarbenproblem und das Icon hab ich inzwischen auch eine etwas andere Problemlösung gefunden! Und zwar unterstützt das png Format mehrstufige Transparenz. Ich hab also einen Screenshot im Adobe ImageReady etwas überarbeitet und hab nun das Icon das sich schön an den Hintergrund anpasst!
Das wär dann doch noch ein guter Start ins Wochenende


Gruß Muphin

Thema: MessageBox anzeigen und bei beenden eines anderen Threads schließen
Am im Forum: GUI: Windows-Forms

@Andreas.May
Dankeschön, das klappt richtig gut!


   public partial class bittewarten : Form
   {
      Thread m_loeseThread;
      XForm m_main;
      public bittewarten( XForm t_main )
      {
         InitializeComponent();

         m_main = t_main;
         m_loeseThread = new Thread( new ThreadStart( start ) );
      }

      private void start()
      {
         m_main.loese();
         this.Close();
      }

      private void cancel_Click( object sender, EventArgs e )
      {
         m_loeseThread.Abort();

         this.Close();
      }

      public new void Close()
      {
         if( this.InvokeRequired ) this.Invoke( new MethodInvoker( this.Close ) );
         else base.Close();
      }

      public new void ShowDialog()
      {
         m_loeseThread.Start();
         base.ShowDialog();
      }
   }

Ich würde nur am liebsten noch in dem Control das MessageBoxIcon.Exclamation anzeigen! Die einzigste Idee die ich bisher dazu hatte war einen Screenshot davon zu machen und diesen dann in eine PictureBox zu packen, das blöde daran ist nur das wenn jemand eine andere Hintergrundfarbe für die Dialogfelder gewählt hat um das Ausrufezeichen eben die Farbe von meinem Screenshot gezeigt wird und nicht die eingestellte Hintergrundfarbe! Gibts ne möglichkeit die picture Box so anzupassen dass nur das gelbe dreieck genau reinpasst oder das Icon direkt anzuzeigen?

Gruß Muphin

Thema: MessageBox anzeigen und bei beenden eines anderen Threads schließen
Am im Forum: GUI: Windows-Forms

In meinem Fall wird doch die Message Box vom GUI-Thread angezeigt, oder hab ich da jetzt was falsch verstanden?

Dann wär in meinem Fall wohl das Beste ich bastel mir sozusagen eine eigene MessageBox die nur den Abbrechen Button enthält und die ich dann am Ende des gestarteten Threads schließe! Ich hatte nur gehofft dass das ganze etwas einfacher is!
Gibts vielleicht eine andere möglichkeit das Control zu sperren solange der Thread ausgeführt wird?

Gruß Muphin

Thema: MessageBox anzeigen und bei beenden eines anderen Threads schließen
Am im Forum: GUI: Windows-Forms

Guten Tag!

Ich möchte beim ausführen eines Threads eine "Bitte warten!" Message Box anzeigen, damit auf dem eigentlichen Control z.B. keine Tasten mehr gedrückt werden können! Sobald der Thread nun fertig ist mit seiner Aufgabe soll die MessageBox wieder geschlossen werden. Außerdem soll beim drücken des Abbrechen Buttons der Thread abgebrochen werden.
Bisher sieht mein Code dazu so aus:


      private void btn_komplettLoesen_Click( object sender, System.EventArgs e )
      {
         Thread a_loeseThread = new Thread( new ThreadStart( loese ) );
         a_loeseThread.Start();
         DialogResult a_result = MessageBox.Show( "Bitte warten!", "löse", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1 );
         if( a_result == DialogResult.Cancel )
         {
            a_loeseThread.Abort();
         }
      }
Leider konnte ich keine möglichkeit finden nur einen Abort-Button anzeigen zu lassen, außerdem weiß ich nicht wie ich es anstellen soll das die MessageBox wieder verschwindet wenn der Thread fertig bearbeitet ist. Ich hoffe auf eure Hilfe!

Gruß Muphin

Thema: Threadsicherer Getter, wie?
Am im Forum: GUI: Windows-Forms

vielen dank, habs so umgesetzt!


      private delegate string stringDelegate();
...
      public string t_hauptfeld_text
      {
         get
         {
            if( m_hauptfeld.InvokeRequired )
            {
               return (string)m_hauptfeld.Invoke( new stringDelegate( delegate { return m_hauptfeld.Text; } ) );
            }
            else
            {
               return m_hauptfeld.Text;
            }
         }
         set
         {
            stopwatch.Start();
            if( m_hauptfeld.InvokeRequired )
            {
               m_hauptfeld.Invoke( new MethodInvoker( delegate { m_hauptfeld.Text = value; } ) );
            }
            else
            {
               m_hauptfeld.Text = value;
            }
            stopwatch.Stop();
            float ms = 1000 * stopwatch.ElapsedTicks / (float)System.Diagnostics.Stopwatch.Frequency;
            writer.WriteLine( ms.ToString() );
         }
      }

Thema: Multithreading und Control.Invoke: Performance Problem
Am im Forum: GUI: Windows-Forms

okay, danke, das klingt absolut logisch!

Nur wenn ich jetzt sozusagen die übergeordnete Methode mit invoke aufrufe wird ja wiederum dieser ganze code im ursprünglichen Thread aufgerufen womit bei mir wiederum das problem mit dem control aktualisieren auftritt!
D.h. mir bleibt wohl nichts anderes übrig wie einen geeigneten zwischenweg zu finden!?

Gruß Muphin

Thema: Multithreading und Control.Invoke: Performance Problem
Am im Forum: GUI: Windows-Forms

eigentlich nicht, da ich zumindest jetzt beim testen nur durch einen Button Click eine Methode aufgerufen hab die eben jetzt in einem eigenen Thread laufen soll! Sonst passiert nichts weiter! Ich will halt dass das Control immer aktuell bleibt, deshalb setze ich den Thread ein!


      private void btn_komplettLoesen_Click(object sender, System.EventArgs e)
      {
         if (m_neueZahlen)
         {
            setzeOriginalArray();
            m_neueZahlen = false;
         }
         else
         {
            setzeZahlenArray();
         }
         Thread a_loeseThread = new Thread( new ThreadStart( loese ) );
         a_loeseThread.Start();
         //loese();
      }

Thema: Multithreading und Control.Invoke: Performance Problem
Am im Forum: GUI: Windows-Forms

Nachdem ich bei mir einen 2. thread eingebaut habe braucht das Proggi für die selbe Aufgabe plötzlich ca. 3 mal solang!
Was ich bisher mithilfe der Stopwatch rausfinden konnte war das der aufruf hier:


      public string t_hauptfeld_text
      {
      ...
         set
         {
            if( m_hauptfeld.InvokeRequired )
            {
               m_hauptfeld.Invoke( new setDelegate( delegate { m_hauptfeld.Text = value; } ) );
            }
            else
            {
               m_hauptfeld.Text = value;
            }
         }
      }
auch mehrmals solang braucht wenn ein extra Thread benutzt wird wie wenn alles in einem Thread läuft!
Auch mit der folgenden Lösung hab ich dasselbe Problem:


      private delegate void setStringDelegate( string t_string );

      private setStringDelegate sStrDel;

         sStrDel = new setStringDelegate( delegate( string t_string ) { m_hauptfeld.Text = t_string; } );

      public string t_hauptfeld_text
      {
      ...
         set
         {
            if( m_hauptfeld.InvokeRequired )
            {
               m_hauptfeld.Invoke( sStrDel, value );
            }
            else
            {
               m_hauptfeld.Text = value;
            }
         }
      }
Wisst ihr alternative oderr habt ihr sonst Ideen wie ich das ganze beschleunigen kann?

Gruß Muphin

Thema: Thread - Methode mit einem Parameter
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

eine Lösung wäre z.B. delegates zu benutzen!

mfg Muphin

Thema: Ausführung bei Tastendruck
Am im Forum: GUI: Windows-Forms

Wenn ich das richtig durschaue müsste ein Timer reichen, du musst nur im Timer.Tick für alle gedrückten Tasten die richtige Aktion durchführen!

Gruß Muphin

Thema: Threadsicherer Getter, wie?
Am im Forum: GUI: Windows-Forms

Ich bin gerade auch dabei das erste mal etwas mit Threads zu machen, nachdem ich mich jetzt gestern und heute ein paar Stundenlang damit beschäftigt hab hier im Forum und auf anderen Seiten in das Thema einzulesen hab ich mich jetzt rangetraut damit loszulegen nur bin ich mir gerade nicht sicher mit einer Threadsicheren get / set Methode, bisher sieht sie so aus:


public string t_hauptfeld_text
{
   get
   {
      if( m_hauptfeld.InvokeRequired )
      {
         return (string)m_hauptfeld.Invoke( new XXX ( delegate { return m_hauptfeld.Text; } ) );
      }
      else
      {
         return m_hauptfeld.Text;
      }
   }
   set
   {
       if( m_hauptfeld.InvokeRequired )
      {
         m_hauptfeld.Invoke( new XXX ( delegate{ m_hauptfeld.Text = value; } ) );
      }
      else
      {
         m_hauptfeld.Text = value;
      }
   }
}

Für die XXX weiß ich nicht sicher was ich implementieren muss, wäre das beste ein
delegate string stringDelegate()? Oder gibts noch andere Lösungen? Oder passt bei dem ganzen sowieso was überhaupt nich?

Gruß Muphin

Thema: Wie herausfinden ob bestimmtes ContextMenuStrip Item geklickt wurde?
Am im Forum: GUI: Windows-Forms

danke für den Tipp, aber genau das wollte ich vermeiden!
Ich hatte das Prog vorher mit .Net 1.1 programmiert und dort musste ich die einzelnen clicked Events der Items nehmen! Mit dem ItemClicked Event des MenuStrip lässt sich das ganze aber schöne umsetzen!

Gruß Muphin

Thema: get und set Methode für Event? [==> nein, aber es gibt add und remove]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guten morgen!
Ist es möglich eine get/set Methode für Event Handler zu schreiben?
Also sowas in die richtung:


      public MouseEventHandler t_merkfeld_MouseMove
      {
         get
         {
            return m_merkfeld.MouseMove;
         }
         set
         {
            m_merkfeld.MouseMove += value;
         }
      }
(Das Beispiel funktioniert natürlich so nicht!)

Gruß Muphin

Thema: Wie herausfinden ob bestimmtes ContextMenuStrip Item geklickt wurde?
Am im Forum: GUI: Windows-Forms

Du meinst so oder?


if( e.ClickedItem == this.markiertToolStripMenuItemFelder )

(Ich glaub ich hab mich ziemlich blöd angestellt was das anbelangt X( )

Thema: Wie herausfinden ob bestimmtes ContextMenuStrip Item geklickt wurde?
Am im Forum: GUI: Windows-Forms

Also mir ist jetzt noch eingefallen es über den Namen zu machen also

e.ClickedItem.Name == "..."
aber das kommt ja fast aufs gleiche raus!
Ich könnte es auch noch mit deb contextMenuStripFelder.Items vergleichen, aber dort das bestimmte herauszusuchen ginge soweit ich es bisher herausgefunden habe auch nur über den Namen!
Gibt es sonst noch möglichkeiten?

Gruß Muphin

Thema: Wie herausfinden ob bestimmtes ContextMenuStrip Item geklickt wurde?
Am im Forum: GUI: Windows-Forms

Sorry, ich hab da heut mittag ja mal mächtig was verpeilt, die SourceControl vom sender is schließlich die TextBox, steht sogar so in dem von mir geposteten code-schnippsel!
Aber der sender ist doch nicht das Item, sondern das ContextMenuStrip und mit e.ClickedItem bekomm ich dann das Item das geklickt wurde! Wobei das ja auch nich mein Problem is, sondern das ich ne etwas intelligentere Methode wollt um zu überprüfen ob genau dieses eine bestimmte Item geklickt wurde oder ein anderes! Ich finds eben nicht so schön das über den Text zu machen der in dem Item steht!
Es geht hier ja um das ItemClicked Event des ContextMenuStrip und nicht um das Click Event des MenuItem!
Hatte gedacht das Code-Beispiel wär dafür gut genug!

Gruß Muphin

Thema: Wie herausfinden ob bestimmtes ContextMenuStrip Item geklickt wurde?
Am im Forum: GUI: Windows-Forms

Ja, aber dann muss ich eben noch überprüfen ob es ein ganz bestimmtes Item ist und da liegt ja das Problem!
Das ClickedItem kann ja ein ganz beliebieges des ContextMenus sein, aber nur wenn es ein ganz bestimmtest ist soll eben der Code ausgeführt werden und sonst eben ein anderer Code!


      private void contextMenuStripFelder_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
      {
         TextBox a_txtBox = (TextBox)((ContextMenuStrip)sender).SourceControl;

         if (e.ClickedItem.Text == "markiert")
         {...
         }
         else(...)
         .
         .
         .
      }

Thema: Wie herausfinden ob bestimmtes ContextMenuStrip Item geklickt wurde?
Am im Forum: GUI: Windows-Forms

Mit dem sender krieg ich ja das Object indem das Context Menu geöffnet wurde, in meinem Fall ist das ne TextBox, wüsste jetzt nich wie mir das helfen soll auf das entsprechende Item des Context Menus zu kommen!?

Thema: Wie herausfinden ob bestimmtes ContextMenuStrip Item geklickt wurde?
Am im Forum: GUI: Windows-Forms

Guten Tag!
Ich hab ein contextMenuStrip und möchte im ItemClicked Event überprüfen ob ein bestimmtes Item geklickt wurde. Ich bin bisher nur auf die Idee gekommen auf den Text des Items zu prüfen also z.B. so:

e.ClickedItem.Text == "markiert"
Ich denke aber das es da doch bestimmt eine bessere Lösung geben muss!
Wär super wenn ihr mir ein paar entsprechende denkanstöße habt!

Gruß Muphin

Thema: Tiefe Kopie von IEnumerator Instanz
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guten morgen!
Kann ich herausfinden an welche Stelle die IEnumerator Instanz zeigt? Es handelt sich dabei um eine Array List, falls das von bedeutung sein sollte!

mfg Muphin

Thema: Tiefe Kopie von IEnumerator Instanz
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich wüsste jetzt nich wie ich das machen soll!
Dafür bräuchte ich ja eine Tiefe Kopie der IEnumerator instanz, ich konnte bisher aber keine möglichkeit finden so etwas zu erstellen!
So sieht der Funktionsaufruf aus:


IEnumerator Iterator = this.ChartDescription.Columns.GetEnumerator();

while( Iterator.MoveNext() )
{   
     currentColumn = (ChartColumn)Iterator.Current;
     ....
     calculateIntersection( e, Iterator, columnCurrentOffset, columnWidth );
     ....
}

Thema: Tiefe Kopie von IEnumerator Instanz
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guten Tach!
Ich hab eine Funktion geschrieben der als Parameter ein IEnumerator übergeben werden muss. Ich musste jetzt nur leider feststellen dass beim Funktionsaufruf keine kopie von der IEnumerator instanz erstellt wird, so dass nachdem die Funktion durchgelaufen ist, in der Funktion aus der ich die andere Funktion aufgerufen habe nachher die IEnumerator instanz an der falschen stelle steht.
Habt ihr da einen Lösungsvorschlag für mich?

gruß Muphin

Thema: Web Service Client empfangene XML Message speichern
Am im Forum: Netzwerktechnologien

Also die Eingabe der IP und des Ports im Browser hab ich vorhin schon ausprobiert gehabt, das Ergebnis ist bei mir nur nicht so toll, liegt wahrscheinlich daran dass der WebService ins C++ mithife von gSoap geschrieben ist!


Mit dieser XML-Datei sind anscheinend keine Style-Informationen verknüpft. Nachfolgend wird die Baum-Ansicht des Dokuments angezeigt.
      
<SOAP-ENV:Envelope>
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <faultcode>SOAP-ENV:Client</faultcode>
         <faultstring>HTTP GET method not implemented</faultstring>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Der Web Service läuft auf einem anderen PC neben mir und ich hab mir die gesendeten Daten dort abspeichern lassen, und das entspricht schon dem was ich erwarte, nur scheint eben dann entweder bei der übertragung oder beim deserialisieren was schief zu laufen!

Thema: Web Service Client empfangene XML Message speichern
Am im Forum: Netzwerktechnologien

Leider kenn ich mich damit noch nich so gut aus dass ich die Funktionen jetzt kurz mal von einem Browser aus aufrufen könnte! Ich hab die Web Service anfragen bisher immer nur direkt im Visual Studio programmiert!
Wenn das kein großes ding ist kannst du mir das kuz erläutern oder hast nen Link wo sowas beschrieben ist?
Ansonsten such ich wohl eher nach was wie ich die Empfangenen Daten direkt abspeicher, im C++ geht das ja schließlich auch!

mfg Muphin

Thema: Web Service Client empfangene XML Message speichern
Am im Forum: Netzwerktechnologien

Guten Tag!
Ich hab ein kleines Problem mit meinem Client zu einem Web Service, die Funktionen die ich mit dem Client aufrufe werden zwar am Server ausgeführt, doch die Daten am Client enthalten dann immer ein null. Deshalb möchte ich mir gerne das was der Client empfängt als XML Message abspeichern, kann mir jemand sagen wie das geht?

mfg Muphin

Thema: aac+ to mp3
Am im Forum: Smalltalk

Villeicht stimmts ja wirklich:
http://www.metacafe.com/watch/377244/free_converter_any_media_to_any_format_inc_flash/

Thema: Visual Studio Express Download
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Vielen Dank!
Hab das vorhin bei msdn gesucht aber einfach nich gefunden!

Thema: Visual Studio Express Download
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallö!
Kennt jemand von euch eine Site wo man Visual C# 2005 Express oder/und Visual C++ 2005 Express direkt runterladen kann?
Bei dem File das ich auf der MSDN Seite gefunden habe werden die Dateien ja nur beim installieren runtergeladen!

mfg Muphin