Laden...
Avatar #avatar-3052.gif
Spontifixus myCSharp.de - Member
Software-Entwickler, Rettungsassistent Hannover Dabei seit 06.09.2005 360 Beiträge
Benutzerbeschreibung

Forenbeiträge von Spontifixus Ingesamt 360 Beiträge

04.12.2008 - 08:18 Uhr

Moin,

mir ist gestern auch durch den Kopf gegangen, dass auf diese Art und Weise der Post-Counter ziemlich stark erhöht wird. Kann man nicht einzelne Threads vom Zähler ausschließen? Oder geht das nur für komplette Unterforen?

Gruß,
Markus 😃

03.12.2008 - 13:30 Uhr

Moin nochmal,

ich hab eine relativ simple Möglichkeit gefunden: Man verwendet die DrawToBitmap()-Methode des Controls, das ausgeblendet werden soll um einen Screenshot des Control zu erhalten. Dann versieht man das Bild Pixel für Pixel mit der gewünschten Transparenz. Anschließend weist man das so entstandene Bitmap einer PictureBox zu, die man über das Control legt. Die Farbe des Overlays lässt sich so über die Hintergrundfarbe der PictureBox beeinflussen...

Das funktioniert in meinem Fall, da sich das "unterlegene" Control nicht verändert während es ausgegraut ist...

Gruß,
Markus 😃

03.12.2008 - 12:59 Uhr

[EDIT=herbivore]Threads zusammengefügt[/EDIT]

Moin zusammen!

Gibt es eine möglichkeit ein halbtransparentes Overlay über einen Teil der Anwendung (konkret ein einzelnes UserControl) zu legen?

Die Möglichkeit eine halbtransparente Form zu nehmen ist nicht praktikabel, da sich das UserControl in einem DockingManager befindet - und ich überdies über dem Overlay nicht transparente Controls brauche die der Benutzer ganz normal bedienen kann.

Der Effekt soll sich ungefähr so darstellen wie die UAC in Windows Vista oder die LightBox für Webseiten.

Viele Grüße,
Markus 😃

EDIT: Gerade gesehen, dass es sowas hier schon gab, allerdings nicht wirklich erfolgversprechend: Transparentes Overlay. @Moderatoren: Vielleicht könnt ihr die threads zusammenführen...

02.12.2008 - 14:30 Uhr

Moin zusammen,

hab gerade auf heise.de gesehen, dass der Verlag einen neuen Channel für Software-Entwickler bereitstellt: heise Developer: Neuer Online-Channel für Softwareentwickler

Vielleicht ist ja da in Zukunft auch der ein oder andere interessante Artikel dabei...

Gruß,
Markus 😃

25.11.2008 - 14:18 Uhr

Die Pokeranwendung, läuft die in einer Windows-Form oder ist die Fullscreen? Verwendet die DirectX o.Ä?

25.11.2008 - 09:48 Uhr

Moin,

vor allen Dingen ist die Frage interessant vor was für eine Anwendung du das Fenster legen willst. Deine Hinweis auf die Performance lässt mich vermuten, dass du es über ein Spiel legen willst?

Gruß,
Markus 🙂

24.11.2008 - 12:03 Uhr

Moin prakti08,

das machen wir bislang so - das Problem ist, dass wir das Interface in mehreren Klassen implementieren müssen die nicht voneinander ableiten können. Und dafür suchen wir eine Lösung (die herbivore ein paar Beiträge weiter oben auch schon genannt hat).

Gruß,
Markus 🙂

24.11.2008 - 10:36 Uhr

Moin FZelle,

Danke für den Hinweis, ich hab mir die LinFu-Bibliothek mal angesehen, denke aber das die (resp. das Ducktyping) für meine Zwecke nicht unbedingt geeignet sind (ohne das jetzt am Code gestestet zu haben).

Ich werde die aber auf alle Fälle im Hinterkopf behalten - und sollte ich da nochmal ran (im Augenblick habe ich andere Aufgaben) werde ich das nochmal ausführlicher evaluieren...

Gruß,
Markus 🙂

21.11.2008 - 14:24 Uhr

Hallo kleines_eichhörnchen,

vielen Dank für die Erläuterung, jetzt ists klarer geworden. Ich werde mir dann nächste Woche mal Gedanken machen ob und wie das umzusetzen ist.

Das Problem, das ich hier habe ist nämlich auch noch, dass das Problem bisher einfach mit Interfaces gelöst ist, was zwar bescheiden zu warten ist, aber funktioniert. Von daher ist das Budget für eine entsprechende Änderung des Designs nicht gerade üppig... 😉

Viele Grüße und schönes Wochenende,
Markus 🙂

21.11.2008 - 13:42 Uhr

Moin herbivore,

das hatt eich ja unter Pkt. 3 meiner Lösungsansätze auch schon genannt. Dann werde ich das mal so machen.

Nochmals allen beteiligten vielen Dank für die Hilfe!

Viele Grüße,
Markus 🙂

21.11.2008 - 13:26 Uhr

@kleines_eichhörnchen: Ja. Hier geht es ausschließlich um "Ist"-Beziehungen.

Nochmal zu deinem Factory-Vorschlag. Ich blick da noch nicht ganz durch. Ich hab mir zwar nochmal das Pattern der Fabrikmethoden und der abstrakten Fabrik angesehen, aber ich kann noch nicht ganz nachvollziehen, in welcher Art mir das nützen sollte... - Insbesondere in Bezug auf die Tatsache, dass ich ja von der erstellten Klasse ableiten können möchte, was ja schon zur Design-Zeit und nicht erst zur Laufzeit passoert. Oder steht ich da jetzt auf der Leitung?

Gruß,
Markus 🙂

21.11.2008 - 11:17 Uhr

Moin moin,

Vielen Dank für Eure Antworten

Eine kleine Sache habe vielleicht unglücklich erklärt: Auch ein BöserHübscherKobold dient lediglich als Basisklasse für einen "konkreten" Kobold. So könnte es z.B. die Klasse GemeinerGartenzwerg : BöserHübscherKobold geben.

Zusätzlich hat nicht jeder Kobold eine Gesinnung. Es mag auch einen hübschen Kobold geben, der weder gut noch böse ist.

@kleines_eichhörnchen: Ich brüte noch über deinem Ansatz 😉

@Lector: Aufgrund der Tatsche, dass selbst ein BöserHübscherKobold nur als Basisklasse dient, brauche ich die Möglichkeit bestimmte Methoden zu überschreiben - ohne gleich wieder jede Menge weiterer Klassen ableiten zu müssen.

21.11.2008 - 09:58 Uhr

Moin nochmal,

ich habe festgestellt, dass das Decorator-Pattern nicht ganz das Richtige für meinen Zweck ist. damit hat sich oben genanntes Problem für's erste erledigt.

Für eine Beschreibung meines Problems mit meinen bisherigen Lösungsansätzen habe ich einen neuen Thread eröffnet: "Mehrfachvererbung" in .NET

Nochmals Danke für Eure Hilfe!

Viele Grüße,
Markus 🙂

21.11.2008 - 09:56 Uhr

Moin zusammen,

ich weiß, dass das .NET-Framework keine Mehrfachvererbung kann. Trotzdem frage ich mich, ob es Möglichkeiten gibt etwas ähnliches zu implementieren.

Problemstellung

Das Programm verfügt über eine recht komplexe Klassenstruktur. Ich möchte das am Beispiel eines Kobolds verdeutlichen. Basisklasse ist die Klasse Kobold. Alle Klassen sind von dieser abgeleitet. Kobolde gibt es jedoch in unterschiedlichen, beliebig kombinierbaren Ausprägungen, Gut, Böse, Hübsch und Hässlich. Jede dieser Ausprägungen ist durch eine enstrpechende Schnittstelle definiert, die teilweise recht aufwändig sein kann; so werden zur Implementierung einer Schnittstelle nicht nur die öffentlichen Methoden, Eigenschaften und Ereignisse benötigt, sondern zusätzlich private Felder und private Helfermethoden.
Aus dem unten angehängten Klassendiagramm ist ersichtlich, dass die Schnittstelle IHübsch gleich in zwei Klassen implementiert wird, die nicht von einer gemeinsamen Basisklasse ableiten.
Dieses Problem tritt im echten Projekt gleich auf mehreren Ebenen und mit einer Vielzahl weiterer Schnittstellen auf. Das macht den Code nicht nur unübersichtlich und schlecht wartbar (etwaige Änderungen müssen an zig Stellen nachgepflegt werden), sondern auch Fehleranfällig (etwaige Bugfixes werden nicht an allen Stellen durchgeführt).

Lösungsansätze
1.Schnittstellen
Schnittstellen sind in diesem Fall kein Lösungsansatz, sondern das Problem. Sie liefern zwar Methoden, Eigenschaften und Ereignisse, bringen jedoch keine Standard-Implementierung mit

1.Decorator-Pattern
Das Decorator-Pattern klingt hier zunächst brauchbar, ist es aber bei näherem Hinsehen nicht. Dekoriere ich einen Kobold zuerst mit dem Attribut "Gut" und dann mit dem Attribut "Hübsch", würde eine Abfrage Kobold is IGut das Ergebnis false zurückliefern. Das darf aber nicht sein. Nun könnte man (wie in Überladung von Cast-Operatoren zwischen Typ und Sub-Typ beschrieben) eine eigene Methode implementieren oder den TypeConverter verwenden um den Cast in den Griff zu bekommen. Bleibt das Problem, dass man in dekorierten Klassen nicht ohne weiteres Methoden der Dekorierer überschreiben kann. 1.Statische Hilfsklasse
Man könnte eine statische Hilfsklasse für jedes Interface definieren, die Methoden definiert, die man aus der die Schnittstelle implementierenden Klasse aufrufen könnte. Trotzdem müssten jedoch in der eigentlichen Klasse alle privaten Felder definiert und der statischen Helfermethode als Referenz übergeben werden.

Frage

Kennt jemand Mechanismen (ab .NET 2.0) mit denen man dieses Problem eleganter angehen könnte (außer auf eine Programmiersprache zu wechseln die Mehrfachvererbung beherrscht)?

Vielen Dank für Eure Hilfe!

Viele Grüße,
Markus 🙂

Edit: Anhang vergessen...

20.11.2008 - 13:40 Uhr

Aber habe ich das richtig verstanden, dass der TypeConverter mir auch den impliziten (oder expliziten) Cast bietet?

Ich habe jetzt einen eigenen TypeConverter gebaut, und diesen per Attribut der Basisklasse (Kobold) zugewiesen. Im TypeConverter habe ich die CanConvertTo- und die ConvertTo-Methoden überladen. Die werden aber gar nicht aufgerufen, wenn ich versuche einen Kobold zu casten...

Oder bin ich da jetzt vollkommen auf dem Holzweg und hab das Prinzip noch nicht verstanden?

Gruß,
Markus 🙂

20.11.2008 - 13:00 Uhr

Moin,

danke für die Antwort! Ich hab mal versucht den TypeCOnverter anzuwenden, aber so richtig funktionieren will das noch nicht. Irgendwo hab ich da noch den Wurm drin. Ich werde erstmal weiter probieren und melde mich dann ggf. nochmal.

(Das Zeitfenster was ich zur Lösung dieses Problems habe, ist nicht unbedingt groß - deswegen kann es sein, dass da jetzt erstmal nix mehr kommt, weil ich die Lösung des Problems nach hinten schieben muss...)

Viele Grüße,
Markus 🙂

20.11.2008 - 11:50 Uhr

Moin zusammen,

ich habe ein Problem beim Überladen von Casting-Operatoren. Angenommen ich habe eine Instanz der Klasse Kobold, die ich per Decorator-Klasse zu BöserKobold und diese wiederum zu BöserHässlicherKobold mache. Jetzt möchte ich diese Instanz nach HässlicherKobold casten - wenn das denn möglich ist. Dazu habe ich mir eine Methode geschrieben, die genau diesen Cast ausführt:

public static T As<T>(Kobold a_convertFrom) where T : Kobold{
   
   // Return-Wert initialisieren
   T returnValue = null;

   // Startwert für den Suchvorgang setzen
   Kobold currentKobold = a_convertFrom;

   // Suchen solange noch keine gültige Instanz gefunden wurde
   while (returnValue == null) {

      // Kobold in die Decorator-Basisklasse casten
      KoboldDecorator baseDecorator = currentKobold as KoboldDecorator;
      
	  // Wenn der Cast geklappt hat...
	  if (baseDecorator != null) {
         
		 // Nachschaun, ob sich dieser Basisdecorator in den
		 // von mir gewünschten Typ casten lässt
		 returnValue = baseDecorator as T;
         
		 // Wenn dem nicht so ist, das interne Objekt
		 // des Decorators abholen und damit weitersuchen
		 if (returnValue == null) {
            currentKobold = baseDecorator.innerKobold;
         }

      }
	  
	  // Wenn sich der Kobold schon nicht in einen Decorator
	  // casten lässt wird er kaum ein solcher sein, ich
	  // brauche also gar nicht weitersuchen.
	  else {
         break;
      }

   }

}

Der folgende Aufruf liefert exakt das gewünschte Ergebnis:

HässlicherKobold myHässlicherKobold = Kobold.As<HässlicherKobold>(myBöserHässlicherKobold);

Diese Methode funktioniert also wie gewünscht - nur hätte ich gerne, dass ich die über einen normalen Cast ansprechen kann:

HässlicherKobold myHässlicherKobold = myBöserHässlicherKobold as HässlicherKobold;

Dummerweise ist die folgende Methode der Basisklasse Kobold (von der alle Decorator-Klassen abgeleitet sind) nicht kompilierbar:

public static explicit operator HässlicherKobold( Kobold a_convertFrom ) {
      return Kobold.As<HässlicherKobold>( a_convertFrom );
}

Die vom Compiler ausgegebene Meldung sagt schlicht "user-defined conversions to or from a derived class are not allowed". Gibt es eine Möglichkeit das dennoch zu erreichen?

Gruß,
Markus 🙂

19.11.2008 - 10:13 Uhr

Moin moin!

Das Problem hatte ich auch mal - ich hab den Text dann selber aufgenommen (Kassette, MP3-Player, whatever...) und ihn dann angehört...

Gruß,
Markus 🙂

11.11.2008 - 14:03 Uhr

Die Klasse bekommst du mit

System.Reflection.MethodBase.GetCurrentMethod().DeclaringType

Gruß,
Markus 🙂

07.11.2008 - 10:05 Uhr

Moin,

in so einem Fall würde ich die ganze Datenverarbeitung (das was jetzt die Konsolenanwendung macht) in ein eigenes Projekt (also eine extra DLL) auslagern und die sowohl aus einer Windows.Forms-Anwendung als auch aus der Konsolenanwendung verwenden...

Gruß,
Markus 🙂

**:::

06.11.2008 - 10:36 Uhr

Oder übersehe ich gerade was?

Ja. Siehe:

das man da den ! Operator nehmen könnte ham die meisten noch ned überrissen ...

Gruß,
Markus 😉

06.11.2008 - 10:06 Uhr

Moin,

eine (zugegeben etwas ältere) Lösung für dein Problem gibt's hier: TabControl-Reiter

Gruß,
Markus 🙂

05.11.2008 - 10:42 Uhr

*hngrmpf* =)

Nochmal vielen Dank an den Erfinder und an herbivore für die Hilfe - es war tatsächlich eine Exception die das Fehlverhalten verursacht hat - allerdings eine gefangene! 🤔 Nunja - jetzt geht es.

Viele Grüße,
Markus 🙂

05.11.2008 - 10:28 Uhr

Moin herbivore,

danke für deine Antwort - wie auch immer: Ich hab die vom Erfinder vorgeschlagene Lösung gerade ausprobiert und das Ergebnis ist immer noch das gleiche. Allerdings bin ich dabei auf einen anderen Fehler gestoßen, den ich jetzt erstmal beseitigen werde um zu sehn obs vielleicht daran liegt...

Gruß,
Markus 🙂

05.11.2008 - 08:56 Uhr

Guten Morgen,

bin soeben wieder an meinem Schreibtisch angekommen und wollte den Vorschlag des Erfinders (schon das Feuern des Events im GUI-Thread zu veranstalten) mal ausprobieren.

Das geht aber nur, wenn die Logik-Klasse die GUI-Klasse kennt - oder? Sonst weiß ich ja gar nicht in welchem Thread ich den Aufruf ausführen muss. Oder habe ich da jetzt einen Denkfehler drin?

Viele Grüße,
Markus 🙂

Edit: Hinweis vom Erfinder auf Extension-Method überlesen...

04.11.2008 - 16:38 Uhr

Werde ich morgen mal machen - Ich melde mich dann wieder. Nochmals danke für die Hilfe!

Gruß,
Markus 🙂

04.11.2008 - 16:03 Uhr

Das Event heißt SnapshotImageChanged(object sender, Image snapshot) - und die oben erwähnte Methode wird von eben diesem EventHandler aufgerufen... Aber selbst wenn ich den BeginInvoke-Aufruf im EventHandler und nicht in der Methode meinHandler() zeigt er das oben beschriebene Fehlverhalten.

Und ein extra-Event für die GUI zu bauen halte ich für ein wenig unschön. Irgenwo muss ich doch einen Fehler eingebaut haben? Es kann doch nicht sein, dass das .NET-Framework an so einer Stelle patzt?

Ich habe die Methode nochmal durchgesteppt und festgestellt, dass er immer an völlig verschiedenen Stellen springt - ohne das irgendwo eine Exception auftritt...

04.11.2008 - 15:24 Uhr

Moin Erfinder,

ich werde da nochmal genau durchsteppen um zu sehen wo genau er fliegt. Das das Event sofort im GUI-Thread gefeuert wird ist in meinem Fall eine weniger gute Idee, da das Event nicht nur von GUI-, sondern auch von anderen Logik-Klassen abonniert wird...

Gruß,
Markus 🙂

04.11.2008 - 15:20 Uhr

Moin herbivore,

nein, tue ich nicht. Der im try-catch stehende Codeblock enthält ein paar String-Operationen, Wertzuweisungen (sowas wie .Visible = false, .Image = m_someImage oder .BackColor = Color.Black)...

Gruß,
Markus 🙂

04.11.2008 - 14:46 Uhr

Moin zusammen,

ich beiße mir seit gestern die Zähne an einem Problem in unserer Software aus - es geht sich um folgendes:

In einem Container sind mehrere identische UserControls enthalten, die sich allesamt auf ein Event aus einer Logik-Klasse registriert haben. Feuert die Logik-Klasse das Event, werden die Methoden im Control auch aufgerufen. Um aus diesen Methoden auf die GUI zuzugreifen, befördere ich sie mittels BeginInvoke in den GUI-Thread:

01: public void meinHandler() {
02: 
03:    if (InvokeRequired) {
04:       BeginInvoke( new MethodInvoker( meinHandler ) );
05:       return;
06:    }
07: 
08:    try {
09: 
10:       // Hier jede Menge GUI-Sachen erledigen,
11:       // wie Hintergrundfarben setzen, Bilder zuweisen,
12:       // Beschriftungen setzen, Steuerelementpositionen setzen, etc...
14:       doLoadsOfFunnyGUIStuff();
15: 
16:    } catch (Exception ex) {
17:       logTheException(ex);
18:    }
19: 
20: }

Der fehlerhafte Ablauf ist jetzt wie folgt: Die Methode meinHandler wird ausgeführt (Breakpoint in Zeile 8 wird erreicht, Objektvariablen zeigen Steuerelement Nr. 2 an) irgendwann danach (also in einer der zahlreichen GUI-Anweisungen) bricht der Ablauf der Methode ab, der Breakpoint in Zeile 8 wird erneut erreicht, die Objektvariablen zeigen jedoch diemal an, dass ich mich in der entsprechenden Methode von Steuerelement Nr. 1 befinde. Hat jemand eine Erklärung dafür?

Viele Grüße,
Markus 🙂

PS: @JAck30lena: Vielen Dank für den myCsharpBBCoder 👍

Edit: Rechtschreibfehler...

30.10.2008 - 08:30 Uhr

Um Pfade zusammenzustellen kann man auch Path.Combine(part1, part2); nehmen - dann passt der Trenner - und man muss sich nicht drum kümmer ob einer von den teilen evtl. schon mit einem Trenner versehen ist oder nicht...

Gruß,
Markus 🙂

28.07.2008 - 16:02 Uhr

(Ich hab grad mal STRG-V gedrückt - und dann kam ein Lizenzschlüssel von einer Software, die ich gerade installiert hatte - den wollte ich dann doch nicht stehn lassen...)

umgekehrtes Reversing? Anhand eines Lizenz-Schlüssels herausfinden, welche Software dazu passt?! 🤔

Hmm - da hast du wohl recht... =)

28.07.2008 - 15:10 Uhr

(Ich hab grad mal STRG-V gedrückt - und dann kam ein Lizenzschlüssel von einer Software, die ich gerade installiert hatte - den wollte ich dann doch nicht stehn lassen...)

22.07.2008 - 15:57 Uhr

Du kommst aus dem Gefängis frei, stehst vor einem roten haus und weißt du bist ruiniert. Was ist passiert?

...ich tipp einfach mal auf Monopoly.

mfg,
Lec

Richtig!

22.07.2008 - 13:43 Uhr

Hehe - da fällt mir auch noch einer ein:

Du kommst aus dem Gefängis frei, stehst vor einem roten haus und weißt du bist ruiniert. Was ist passiert?

21.07.2008 - 08:32 Uhr

Ich auch: Herzlichen Glückwunsch - und Dank an alle die MyCsharp in den letzten 5 Jahren möglich gemacht haben!

Viele Grüße,
Markus 🙂

18.07.2008 - 10:57 Uhr

Moin,

such mal nach "ShowWindow" - ist eine Funktion der user32.dll

Gruß,
Markus 🙂

10.06.2008 - 15:03 Uhr

Einfach folgendes angeben:

[url]http://msdn.microsoft.com/de-de/library/...ol.autopostback(VS.80).asp[/url]

Ergebnis: http://msdn.microsoft.com/de-de/library/...ol.autopostback(VS.80).asp

Das sollte für's erste abhilfe schaffen...

10.06.2008 - 15:00 Uhr

Das was mir spontan einfällt wäre den Offset der Zeit mitzuspeichern. Also die UTC-Zeit und für die jeweilige Zeitzone die Differenzstunden zu UTC. So bekommst du überall auf der Welt die lokale Zeit...

Gruß,
Markus 🙂

10.06.2008 - 14:33 Uhr

Hallo Andreas,

vielen Dank für deine Hilfe - die Variante mit den Werten in einem object[] hat's gebracht. Jetzt macht die Methode zwar immer noch nicht was sie soll aber sie schmeißt keine Exception mehr... - und das sie nicht das mach, was sie soll liegt an den übergebenen Werten.

Nochmals danke!

Gruß,
Markus 🙂

10.06.2008 - 13:29 Uhr

Das interessiert mich auch - im Web findet man ne Menge Infos, davon aber nur sehr wenig Grundlageninfos, sondern hauptsächlich spezielle Probleme - und wenn man Glück hat auch deren Lösungen...

Gruß,
Markus 🙂

10.06.2008 - 11:20 Uhr

Moin zusammen,

folgende Problemstellung. Ein in meiner Anwendung verwendetes ActiveX-Control stellt die Methode

 sendRCP(object rCP)

zur Verfügung. Laut Doku des Hertellers erwartet die Methode einen...

...Variant of type SafeArray that holds the command to be transmitted. For the definition of variants and SafeArrays see the Microsoft OLE documentation.

Die Daten die ich übergebe haben folgendes Layout:

struct RcppMessage {
   public short command;
   public byte dataType;
   public byte versionReadWrite;
   public byte action;
   public byte reserved;
   public short clientId;
   public long sessionId;
   public short num;
   public short payloadLength;
   public byte[] payload;
}

Seit ich heute morgen an meinem Arbeitsplatz sitze, reise ich durch die unendlichen Weiten des großen **:::

Erster Ansatz war der folgende:

[MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)]
private RcppMessage[] m_rcppCommands;

private void sendCommand () {
   
   msg = new RcppMessage();

   msg.versionReadWrite = 0x31;
   msg.action = 0x00;
   msg.reserved = 0x00;
   msg.clientId = ClientID;
   msg.sessionId = 0;
   msg.command = 0x0019;
   msg.dataType = 0x14;
   msg.num = 0;
   msg.payloadLength = 0;
   msg.payload = new byte[0];

   m_rcppCommands= new RcppMessage[] { msg };

   return ocxDisplay.SendRCP( m_rcppCommands);
}

Das liefert bei Aufruf der Methode ocxDisplay.SendRCP eine Exception mit folgendem Inhalt:

Falscher Parameter. (Ausnahme von HRESULT: 0x80070057 (E_INVALIDARG))

Der zweite Ansatz war das Struct RcppMessage direkt als SafeArray zu "marshaln" - das hat aber auch nicht funktioniert.

Hat jemand von Euch Erfahrung mit sowas und kann mir helfen dieser Methode das Struct so zu übergeben, dass sie keine Exception mehr schmeißt?

Gruß,
Markus 🙂

06.06.2008 - 13:34 Uhr

Bot JAck30lena funktioniert irgendwie nicht richtig.

JAck30lena.enabled = false;
gab bestimmt einen BufferOverflow 😉

Wir sollten mal drüber nachdenken ob sich da nicht beliebiger Code einschleusen lässt...

05.06.2008 - 10:40 Uhr

Nicht in der Datei MainForm.cs, sondern in der Datei program.cs musst du suchen...

05.06.2008 - 08:22 Uhr

Moin,

40 Stunden sind bei einer geschätzten Arbeitszeit von 8 Stunden pro Tag gerade mal eine Woche. Verschätze dich nicht bei den Aufwänden die du für so ein Projekt brauchst. Auch hier gilt die 80:20 Regel: Für 80% der Arbeit brauchst du 20% der Zeit - und umgekehrt...
Zusätzlich musst du da ja auch noch was zu schreiben oder?

Gruß,
Markus 🙂

04.06.2008 - 10:08 Uhr

Schau dir mal die Auflösung des Systems an. (Eigenschaften von Anzeige -> Einstellungen -> Erweitert -> Allgemein -> DPI-Anzeige). Wenn die beim Zielrechner vom Developmentrechner abweichen könnte das das Problem sein...

Gruß,
Markus 🙂

03.06.2008 - 15:09 Uhr

Soweit ich weiß bringen das schon normale System.Windows.Forms.Textboxen von Haus aus mit. Die Eigenschaften sind die folgenden:
*AutocompleteMode: Setzt den Modus der Autovervollständigung (Anhängen, Vorschlagen, oder Vorschlagen und Anhängen) *AutocompleteSource: Hier die Quelle der Liste einstellen (CustomSource) *AutoCompleteCustomSource: Hier eine Liste mit Strings angeben, die man auswählen kann

Ich weiß nicht ob das in einem DataGrid auch geht - bei einem ToolStripMenuItem geht es...

Viele Grüße,
Markus 🙂

03.06.2008 - 11:54 Uhr

Kann man nicht. Dann fehlen die Zahlen 8 und 9...

Gruß,
Markus 🙂

03.06.2008 - 11:29 Uhr

Das kommt auf die vorraussetzungen an. Geht man davon aus nur eine Addition ohne Zwischenergebnisse verwenden zu dürfen ist das Rätsel tatsächlich nicht lösbar. Allerdings steht das mit keinem Wort in der Aufgabenstellung...

Gruß,
Markus 🙂

02.06.2008 - 13:57 Uhr

Moin,

Auch hier hilft die MSDN: Custom Today Screen Items

Viele Grüße,
Markus 🙂