Laden...

Forenbeiträge von DFDotNet Ingesamt 201 Beiträge

06.10.2010 - 10:09 Uhr

Hast du explizit einen Punkt (0/0) hinzugefügt, oder wird die Linie evtl nur aufgrund einer Einstellung vom Ursprung aus gezeichnet?

06.10.2010 - 10:08 Uhr

Naja das ist ja das Problem! Ich habe leider keine Version von Matlab.

Dann kannst du vielleicht mit SciLab/XCos was anfangen. Das ist ein OpenSource Clone von MatLab, der u.a. auch von Hochschule zur Lehre eingesetzt wird. Die meisten Befehle sind gleich (oder zumindest ähnlich).

04.10.2010 - 08:46 Uhr

Hallo,
ich würde für den Fall einfach eine Klasse schreiben, die intern eine List<T> oder ein Dictionary<T,T> anhält (worin du eben deine Daten am liebsten speichern würdest) und dann einen Indexer schreiben:

  
public T this[uint index]   // 'T' für einen generischen Ansatz der Klasse, ansonsten 'MyClass' oder so ;)
{
  get
  {
    //hier das Element aus der internen Liste suchen und zurückgeben
   }
   set
   {
     //hier das Element der internen Liste ersetzen
    }
 }

04.10.2010 - 08:39 Uhr

Hallo,

ich kann dir INNO-Setup empfehlen.
Das ist OpenSource, hat eine relativ einfache Script-Sprache und unterstützt zusätzlich die Ausführung von beliebigem Pascal-Code.
Check und bei Bedarf Installation von .NET-Framework habe ich damit gelöst (wenn du willst geb' ich dir Beispielcode).
Installation von .NET-DLLs in den GAC sowie anlegen/bearbeiten von INI-Files wird direkt vom Script unterstützt.
Was IIS angeht, kann ich leider nichts sagen, da ich damit keine Erfahrung habe, aber es könnte ja einen Versuch wert sein 😉

Gruß

*EDIT* Sorry, deinen Satz zu INNO habe ich erst beim 2. mal lesen wahrgenommen,
hat sich also erledigt 😉

14.09.2010 - 13:36 Uhr

MyClass leitet von Interface1 ab (bzw implementiert, in dem Fall).
IList<MyClass> leitet aber nicht von IList<Interface1> ab.

Die frage ist hier also: Warum leitet IList<MyClass> nicht von IList<Interface1> ab, wenn MyClass doch von Interface1 ableitet?

Stichwort Co- und Contravariance, ist in .NET 4.0 neu.

Heißt dass, der gleiche Code hätte mit einem älteren Compiler funktioniert?

14.09.2010 - 13:31 Uhr

Hallo,

ich habe zu diesem Problem nichts gefunden, mag sein dass mir auch der richtige Suchbegriff fehlt.
Folgende Ausgangssituation:

  • ein beliebiges Interface "Interface1"
  • eine Implementierung dieses Interfaces
  • ein weiteres Interface "Interface1Container", welches eine Liste von 'Interface1'-Objekten beinhalten soll


  interface Interface1
  {
    string Something { get; set; }
  }

  interface Interface1Container
  {
    IList<Interface1> Elements { get; }
  }

  class MyClass:Interface1
  {
    #region Interface1 Member

    public string Something { get; set; }

    #endregion
  }

Folgende Implementierung von "Interface1Container" ist nicht zulässig:


  class MyClassContainer : Interface1Container
  {
    private List<MyClass> _elements = new List<MyClass>();

    #region Interface1Container Member

    public IList<Interface1> Elements
    {
      get { return _elements; }
    }

    #endregion
  }

Diese hier aber schon:


  class MyClassContainer : Interface1Container
  {
    private List<MyClass> _elements = new List<MyClass>();

    #region Interface1Container Member

    public IList<Interface1> Elements
    {
      get { return _elements.ConvertAll<Interface1>(element => element); }
    }

    #endregion
  }

Wo ist da der Sinn?
Warum kann ich nicht direkt die Liste zurückgeben, es handelt sich dabei doch ohnehin um "Interface1"-Objekte...

Danke!

08.09.2010 - 13:28 Uhr

Beschreibung:

Eine Erweiterung der System.Windows.Forms.ListBox in der die Items per Maus (Drag&Drop) umsortiert werden können.
Dazu wird eine Linie an der Stelle angezeigt, an der die "gedraggten" Items eingefügt werden.
Ich brauchte so etwas an mehreren Stellen und habe mir daher das Control selber implementiert.

Mögliche Erweiterungen, die noch nicht implementiert sind:

  • Draggen und Verschieben mehrerer Items (aktuell nicht möglich, da durch Klick auf ein Item die mehrfach-Selektion aufgehoben wird)
  • Verschieben der Items mit den Pfeiltasten (hoch/runter)

Schlagwörter: ListBox, UserControl, Control

09.08.2010 - 14:46 Uhr

Ich setzte das hier:

http://www.codeproject.com/KB/tabs/tabstrips.aspx

mit ein paar eigenen Anpassungen erfolgreich ein.
Echt gute Optik und einfache Verwendung.

Gruß

14.07.2010 - 10:43 Uhr

Ich kann dir ICSharpCode.SharZipLib empfehlen (einfach mal googlen)
Setze ich erfolgreich ein.
Die Lib ist OpenSource, also könntest du's auch in die exe mit reinkompilieren.

mfg

29.06.2010 - 13:20 Uhr

Nicht nur theoretisch. Und die referenzierten 3.5-DLLs in Programmverzeichnis legen reicht auch aus.
Genau so bekommt man 3.5er-Anwendungen auf auf Win2000 zum laufen.){gray}

Warum stellt MS denn dann kein 3.5 redistributable für Win2000 zur Verfügung, wenn das so einfach ist?

29.06.2010 - 13:03 Uhr

Ich glaube, hier wäre der Code zum befüllen der ComboBox, den du ausgelassen hast, interessanter...

29.06.2010 - 08:21 Uhr

Deklassiert würde ich das nicht nennen.

Ich schon. Mag an meiner Schwarz-Rot-Goldenen Brille liegen, aber ich fand uns eine Klasse besser. Das sogar die SUN das schreibt, heißt ja auch schon was...

Und wer nach 40 Jahren immernoch auf Rache hofft, sollte IMO mal überlegen, warum er Fussball schaut, wenn ihm Rache wichtiger ist als Fairplay.

Auf Rache "gehofft" habe ich nicht. Ich habe Nicht mal im entferntesten dran gedacht, dass Engalnd ein Tor aberkannt werden könnte, das ähnlich wie das Wem,bley-Tor aussieht, nur eben andersrum 😉
Aber als es dann so war, kam nun mal Schadenfreude und so was wie Genugtuung hoch. Das ist menschlich und ging wahrscheinlich 80% aller Deutschen am Sonntag so.

Aber die FIFA, die Milliardengewinne erzielt und noch nicht einmal Steuern bezahlt, hat natürlich nicht genug Geld für die entsprechende Ausrüstung.

Das mit den Steuern musst du mal erklären, das glaub ich so nicht ganz.
Und am Geld für die Torkamera o.ä. scheitert es sicherlich nicht, denn die FIFA sieht das als Grundsatzentscheidung gegen weitere technische Hilfsmittel. Ich finde das richtig. Vor 4 Jahren wurden die Headsets eingeführt, um die Kommunikation der Schiris zu verbessern. Das finde ich sinnvoll, aber dabei sollte es auch erstmal bleiben. Und was Torkameras angeht, bin ich eher für die Tor-Schiris aus der Euro-League. Das Experiment will Blatter ja schließlich auch abwarten, bevor sich die FIFA mit weiterer Technik beschäftigt.

Und jetzt hau'n wir Argentinien raus!!

28.06.2010 - 07:15 Uhr

Gestern war ja wohl der Oberhammer!
Späte Rache für 1966 und England deklassiert 😄
Wahnsinn!

22.06.2010 - 09:44 Uhr

Hallo,

zu Info, falls jemand mal so ein Problem hat.
Ich habe das Problem jetzt gelöst (bzw. vielmehr "umgangen"):
Es lag offenbar an einem bestimmten Projekt in der Solution. Und zwar ist das ein Projekt, das mit einem StrongName-Key (.snk) versehen ist.
Ich habe das Projekt jetzt in den anderen Projekten nicht mehr direkt referenziert, sondern die Verweise auf die aus dem Projekt erstellte DLL gelegt. Dann funktioniert es. Das Projekt, welches den Fehler auszulösen scheint, ist aber immer noch in der Solution, nur wird es eben nicht mehr direkt referenziert.
Ich weiß zwar nicht, ob es jetzt am snk lag, oder an etwas anderem, aber da es das einzige Projekt mit snk ist, vermute ich es mal.

Macht es wohl Sinn, den Fehler an MS zu melden? Schließlich ist VC#2008 ja nicht mehr aktuell...

10.06.2010 - 13:24 Uhr

Hallo zusammen,

ich habe bisher oft die Symbolsuche genutzt (z.B. per Rechtsklick auf eine Variable oder Klasse -> "Alle Verweise suchen").
Seit ca. 2 Tagen funktioniert das aber einfach nicht mehr. Ich bekomme immer das folgende Ergebnis angezeigt: "Es liegen keine Suchergebnisse vor."

Aber was noch viel schlimmer ist: Ich kann auch keine Variablen mehr umbenennen. Bisher habe ich eine Variable umbenannt, indem ich zur Definition gegangen bin, sie umbenannt habe und dann per ALT+SHIFT+F10 im Kontextmenü das umbenennen bestätigt habe.Alternativ kann man ja auch einen Rechtsklick machen und Umgestalten -> Umbenennen klicken. Das geht auch nciht mehr.
Jetzt kommt immer die Meldung "Der Umgestaltungsvorgang konnte aufgrund von Buildfehlern nicht durchgeführt werden." und das Umbenennen wird Rückgängig gemacht. Buildfehler gibt es aber keine. Das Projekt lässt sich Kompilieren und starten und alles!

Und der dritte Punkt, der nicht mehr geht: Wenn ich ein Control im Designer umbenenne, scheint das zu funktionieren, aber beim nächsten kompilieren merke ich dann, dass nur die Verweise in der .Designer.cs-Klasse umbenannt worden sind, nicht die in der eigentlichen Klasse.

Hat jemand eine Idee, woran das liegen kann? Ich hab auch schon das Setup ausgeführt und die IDE "reparieren" lassen, aber leider keinen Erfolg gehabt.
Effektiv arbeiten ist so nicht mehr möglich...

Gruß

08.06.2010 - 14:30 Uhr

Man kann doch in der Xml-Datei die Schema-Datei angeben - gugge evtl
>

Nicht dassichs probiert hätte, aber täte schon erwarten, dass der Serializer sich da dran hält.

Klar kann ich in einer XML-Datei ein Schema angeben, aber hier habe ich ja keine XML-Datei, sondern will erst eine erstellen.
Die Frage lautet also, wie ich das Schema an den XMLSerializer übergeben kann, so dass er die (ungeordneten) Properties der Klasse in der richtigen Reihenfolge (die ja vom Schema vorgegeben ist!) serialisiert.
Ob er dann das Schema mit in die Datei einträgt, ist sekundär.

01.06.2010 - 08:56 Uhr

Wies aussieht geht das was ich will einfach nicht. Habe nirgends was dazu finden können. Oder hat hier noch jemand eine Idee?
Sonst werde ich die gemeinsamen Elemente wohl doch in jede Klasse kopieren müsse. Zwar unschön aber es funktioniert in jedem Fall...

27.05.2010 - 11:11 Uhr

@DFDotNet: Wie löst du das Problem, dass diese zentrale Instanz dann ALLE Events bekommt? Wenn es z.B. mehrere Instanzen des "Importers" gibt, schicken diese alle ihre Events an die zentrale Instanz. Beim Loggen dieser Meldungen bekommt man dann ev. mehr Meldungen, als man sich wünscht. 😉
Lösung wäre, dass man den Instanzen eine Id gibt, daimt man wieder unterscheiden kann, was jedoch auch ein Aufwand ist, da diese Id u.a. an die Subkomponenten weitergegeben werden müsste usw.

Das Problem stellt sich bei mir nicht. Es ist so, dass bei einer bestimmten Änderung an einem Objekt u.U. andere Komponenten die Anzeige aktualisieren müssen o.ä.. Deshalb senden alle Objekte die Info an den 'ChangeNotifier'. Die Komponenten, die dessen event wiederum abbonieren, entschieden anhand der Infos in den event-Arguments (enthalten eine Referenz auf das objekt), ob es für sie relevant ist oder nicht. Aber erstmal bekommen sie natürlich das event von allen Objekten mit, auch wenn es eventuell irrelevant ist.

27.05.2010 - 08:16 Uhr

Hallo,

ich würde in dem Fall wahrscheinlich Möglichkeit 2 wählen. Habe das auch in einer Anwendung mal so gemacht und es funktioniert gut.
In meinem Fall gibt es eine zentrale Stelle, die informiert wird, wenn an Objekten im Projekt eine bestimmte Änderung passiert. Diese (statische) Klasse bietet das dann als event an. Jede Komponente, die sich dafür "interessiert" abonniert das event.
Gruß

21.05.2010 - 09:29 Uhr

Zitat von: Wikipedia
Wikipedia]Version 2.0 ist die letzte Version, die Windows 2000, Windows 98 und Windows Me unterstützt.

-> keine funktionen benutzen, die erst ab 3.5 kommen (Linq & co). Selbiges gild für p/invoke

Wenn du Visual Studio 2008 nutzt würde ich dazu empfehlen, die Framework-Version im Projekt einzustellen.

Rechtsklick auf Projekt (nicht Projektmappe!) -> Eigenschaften -> Zielframework -> .NET Framework 2.0

Dann kommt man gar nicht erst in Versuchung neue Features zu verwenden...

20.05.2010 - 11:35 Uhr

verwendetes Datenbanksystem: <XML>

Hallo zusammen,

ich lese eine XML-Datei per Deserialisierung ein, kann diese dann bearbeiten und später wieder speichern (serialisieren).
In einem XSD-Schema ist die Reihenfolge der Elemente vorgegeben. Zunächste habe ich einfach die Reihenfolge der Properties im Code in der gleichen Riehgenfolge gehalten, wie die Elemente laut Schema sein sollen, dann funktionierte die Serialisierung so wie sie sollte.

Da mehrere XML-Elemente gleiche Sub-Elemente enthalten, aber zusätzlich auch noch andere Elemente:


<Root>
  <Element1>
    <Irgendwas>abc</Irgendwas>
    <SubElement1>a</SubElement1>
    <SubElement2>b</SubElement2>
    <SubElement3>c</SubElement3>
    <NochIrgendwas>xyz</NochIrgendwas>
  </Element1>
  <Element2>
    <IrgendwasAnderes>def</IrgendwasAnderes>
    <NochIrgendwasAnderes>uvw</NochIrgendwasAnderes>
    <SubElement1>x</SubElement1>
    <SubElement2>y</SubElement2>
    <SubElement3>z</SubElement3>
  </Element2>
</Root>

Ich dachte mir, da würde sich ja eine gemeinsame Basis-Klasse anbieten, anstatt in jeder Klasse die gleichen SubElmente mit den gleichen Serialisierungs-Attributen zu halten:



//Basis-Klasse:
public abstract class SubElementOwner
{
[XmlElement("SubElement1")]
public string SubElement1{ get; set; }

[XmlElement("SubElement2")]
public string SubElement2{ get; set; }

[XmlElement("SubElement3")]
public string SubElement3{ get; set; }
}

//Eine Klasse, die von der Basis-Klasse erbt:
public class Element1 : SubElementOwner
{
//eigene Felder:

[XmlElement("Irgendwas")]
public string Irgendwas{ get; set; }

[XmlElement("NochIrgendwas")]
public string NochIrgendwas{ get; set; }
}

//2. Klasse (Element2) analog dazu...
//...


Das Problem ist jetzt, das zwar die deserilisierung, also das einlesen der XML-Datei noch genauso funktioniert, wie vorher, aber beim serialisieren stehen die Elemente in einer anderen Reihenfolge, als beim einlesen.

Ich ahbe schon herausgefunden, dass man mittels


[XmlElement("Name", Order=0)]

Die Reihenfolge beim Serialisieren steuern kann.
Aber für meinen Fall funktioniert das wegen der Basis-Klasse nicht.
Die gleichen SubElemente sind zwar nach dem Schema immer in der gleichen Reihenfolge vorhanden, aber in nicht immer an der gleichen "relativen" Stelle, wie man auch im Beispiel-XML oben sieht.
Hat jemand eine Idee, wie ich für diesen Fall trotzdem die Reihenfolge der Elemente beim Serialisieren bestimmen kann?
Entweder müsste man in den abgeleiteten Klassen jeweils angeben können, woe die Properties der Basis-Klasse "beginnen" (also sozusagen den Offset)
Oder man müsste den XmlSerializer zwingen, sich nach dem Schema zu richten, das wäre die elegantere Lösung, aber ich weiß leider nicht wie...

Gruß

17.05.2010 - 12:09 Uhr

es gibt schon ein paar kleine Unterschiede, z.B. dass die Reihenfolge der an Equals übergebenen Objekte vertauscht ist (ok, das sollte nichts machen, wenn Equals symmetrisch implementiert ist)

Schande! Das war's ich hab die Reihenfolge mal vertauscht (war mir gar nicht aufgefallen, dass ich die Parameter in anderer Riehenfolge übergebe) und dann funktionierte es.
Also hab ich die Equals-Methode (und unter-Methoden) mal durchgeguckt und einen Tippfehler gefunden!
An einer einzigen Stelle habe ich objekt "x" mit objekt "x" (also sich selber 😛 ) verglichen anstatt mit objekt "y"...

Danke für den Tipp!

17.05.2010 - 10:30 Uhr

Hallo,

ich verwende um Listen zu vergleichen die Methode

List<T>.Find(Predicate<T> predicate)

Und als Predicate übergebe ich die Methode "Equals(MyType obj1,MyType obj2)" aus einem eigenen IEqualityComparer<MyType>. Das Ganze sieht dann so aus:


private MyType FindMatchingObject(MyType obj, List<MyType> list)
{
  MyType matchingObject = list.Find(delegate(MyType objTest) { return MyTypeEqualityComparer.SINGLETON.Equals(obj, objTest); });

  return matchingObject;
}

Und jetzt kommt es manchmal dazu, dass diese Methode 'null' zurückgibt, obwohl der Aufruf


list.Contains<MyType>(obj, MyTypeEqualityComparer.SINGLETON))         

vorher 'true' zurückgegeben hat.

Um das zu überprüfen habe ich dann anstelle von list.Find(...) selber eine Schleife geschrieben:



private MyType FindMatchingObject2(MyType obj, List<MyType> list)
{
  foreach (MyType objTest in list)
  {
    if (MyTypeEqualityComparer.SINGLETON.Equals(objTest, obj))
    {
      return objTest;
    }
  }
 
  return null;
}

Und siehe da, es wird ein MyType-objekt zurückgegeben. Aus der Doku schliesse ich doch, dass List<T>.Find(Predicate<T> predicate) ebenfalls alle objekte der lsit mit dem angegebenen Predicate-delegaten überprüft und beim ersten treffer das entsprechende objekt zurückgibt. Also sollte Find() doch das selbe Ergebnis liefern, wie meine Schleife, oder?!

11.05.2010 - 14:57 Uhr

Mal probiert die Anwendung unter verschiedenen Accounts laufen zu lassen, ggf. als Admin?

Ich habe nur ein Benutzerkonto auf dem Rechner und das hat Admin-Rechte.

Gehe mal davon aus, dass die Ursache nicht in deinem Code, sondern auf der speziellen Maschine zu finden ist. Ist auf beiden Maschinen VS installiert?

Nein, VS ist nur bei mir installiert, aber das kann doch nicht die Ursache sein, oder? Macht ja keinen Sinn, dass man bestimmten Code auf Systemen mit VS nicht ausführen und somit nicht debuggen kann 😉

11.05.2010 - 09:38 Uhr

Hallo,

das hilft leider beides auch nicht weiter.

Mir ist gerade noch aufgefallen, dass das RSA-object (egal ob über

 RSA.Create();

oder

 RSACryptoServiceProvider.Create();

erzeugt) bei einigen Properties schon sofort nach der Erzeugung Exceptions beim Zugriff wirft (siehe Bild).
Das mit den Rechten würde mich auch sehr wundern, da mein Kollege und ich das selbe Image von der EDV-Abteilung auf den Rechner bekommen haben und es bei ihm ja funktioniert 😉

10.05.2010 - 16:01 Uhr

Hallo,

Ich wollte heute mal schauen, ob ich es hinbekomme eine Lizenz-Prüfung mit RSA zu implementieren,, bin aber schon gleich zu Beginn gescheitert.
Der folgende simple Aufruf führt bei mir zu einer CryptographicException mit dem Text "Das System kann die angegebene Datei nicht finden.":


    private void button1_Click(object sender, EventArgs e)
    {
      RSA rsa = RSA.Create();
      rsa.KeySize = 512;
      string s = rsa.ToXmlString(false);
      MessageBox.Show(s);
    }

Der StackTrace ist der folgende:

"   bei System.Security.Cryptography.CryptographicException.ThrowCryptogaphicException(Int32 hr)\r\n 
  bei System.Security.Cryptography.Utils._CreateCSP(CspParameters param, Boolean randomKeyContainer, SafeProvHandle& hProv)\r\n 
  bei System.Security.Cryptography.Utils.CreateProvHandle(CspParameters parameters, Boolean randomKeyContainer)\r\n
   bei System.Security.Cryptography.Utils.GetKeyPairHelper(CspAlgorithmType keyType, CspParameters parameters, Boolean randomKeyContainer, Int32 dwKeySize, SafeProvHandle& safeProvHandle, SafeKeyHandle& safeKeyHandle)\r\n
   bei System.Security.Cryptography.RSACryptoServiceProvider.GetKeyPair()\r\n   bei System.Security.Cryptography.RSACryptoServiceProvider.ExportParameters(Boolean includePrivateParameters)\r\n
   bei System.Security.Cryptography.RSA.ToXmlString(Boolean includePrivateParameters)\r\n 
  bei WindowsFormsApplication1.Form1.button1_Click(Object sender, EventArgs e) in C:\\Dokumente und Einstellungen\\follmand\\Desktop\\WindowsFormsApplication1\\WindowsFormsApplication1\\Form1.cs:Zeile 26.\r\n
   bei System.Windows.Forms.Control.OnClick(EventArgs e)\r\n
   bei System.Windows.Forms.Button.OnClick(EventArgs e)\r\n
   bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)\r\n
   bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)\r\n   bei System.Windows.Forms.Control.WndProc(Message& m)\r\n
   bei System.Windows.Forms.ButtonBase.WndProc(Message& m)\r\n
   bei System.Windows.Forms.Button.WndProc(Message& m)\r\n
   bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)\r\n   bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)\r\n   bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)\r\n
   bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)\r\n
   bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)\r\n
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)\r\n
   bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)\r\n
   bei System.Windows.Forms.Application.Run(Form mainForm)\r\n
   bei WindowsFormsApplication1.Program.Main() in C:\\Dokumente und Einstellungen\\follmand\\Desktop\\WindowsFormsApplication1\\WindowsFormsApplication1\\Program.cs:Zeile 18.\r\n
   bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)\r\n   bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)\r\n
   bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()\r\n
   bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)\r\n
   bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)\r\n
   bei System.Threading.ThreadHelper.ThreadStart()"

Bei einem Kollegen auf dem Rechner läuft der Code einwandfrei und zeigt den XML-String mit dem public-key an, wie erwartet.

Ich weiß mir keinen Rat mehr, außer, dass ich mir irgendwie das .NET-Framework zerschossen habe. Reparatur über Systemsteuerung->Software brachte allerdings auch nichts...

Hat jemand eine Idee?

23.04.2010 - 10:23 Uhr

Stimmt, die gleiche Antwort habe ich vom VS-One Kundendienst auch bekommen.

Habe mir das "echte" Abo jetzt aber doch bestellt, denke die Zeitschrift ist ganz gut um auf dem Laufenden zu bleiben, was .NET angeht. Und ein paar Programmier-Tipps kann man auch finden.

20.04.2010 - 11:33 Uhr

Hallo,

ich kenne zwar das Problem (noch) nicht, aber vielleicht hilft dir das weiter:


Environment.GetEnvironmentVariable("TEMP");

Viel Erfolg!

15.04.2010 - 14:13 Uhr

hallo frisch,

gebe dir eigentlich völlig recht.
allerdings gibt es endanwender der software, die sich nicht daran halten und da der kunde ja nun mal könig ist (oder zumindest gerne wäre 😉 ) sollte das programm da "tolerant" sein...
das mit dem wrapper wäre ein ansatz, aber mir persönlich würde es besser gefallen, wenn das ganze automatisch beim einlesen passieren würde, ohne dass die datei gelesen, geändert, gespeichert und dann wieder gelesen werden muss.

15.04.2010 - 13:55 Uhr

verwendetes Datenbanksystem: <XML>

Hallo,

ich lese eine große XML-Datei per XMLSerializer ein. Die zugehörige Serialisierungs-Klasse habe ich mir selber geschrieben und die Properties mit Attributen zur Serialisierung versehen.

Jetzt kann es vorkommen (z.B. durch manuelles "herumeditieren" an der XML-Datei), das Tags mal groß und mal kleingeschrieben sind.

XMLSerailizer behandelt XML aber case-sensitiv. Das ist ja laut XML-Standard auch richtig so, aber für meinen speziellen fall wäre es klasse, wenn man das ausstellen könnte, so dass z.B. Folgende Elemente gleichbehandelt würden:


<Name>das ist ein Name</Name>

und


<name>das ist auch ein Name</name>

Gibts da eine Möglichkeit?

Ich habe schon in der MSDN und per Google gesucht, aber nichts gefunden.
Habe auch überlegt, dass man von in einer beim Serialisieren benutzten Komponente eine bestimmte einlese- oder vergleichs-Methode überschreiben könnte. Dass müsste dann ja in einer der Folgenden Komponenten sein:
XMLSerializer,
XMLSerializationReader,
XMLReader oder
FileStream

aber welche Methode würde sich da anbieten?

Danke!

26.03.2010 - 14:42 Uhr

Hallo,

mach mal einen Rechtsklick auf das Control das "Unterlappt" und wähle "In den Vordergrund" aus. Dann sollte es gehen.

24.03.2010 - 11:59 Uhr

oder du erstellt dir im OnLoad() oder im Konstruktor eine Liste:


List<PictureBox> pictureBoxes = new List<PictureBox>;
pictureBoxes.Add(pictureBox1);
pictureBoxes.Add(pictureBox2);
.
.
.

Dann kannst du schreiben:


for(int  z = 0; z < pictureBoxess.Count; z++;)
{
   pictureBoxes[z].Enabled = true;
}

23.03.2010 - 12:00 Uhr

FFT geht nicht nur für Audio-Signale, sondern das ist sogar ein häufiger Anwendungsfall

Genau.
Viele Audio-Codecs (z.B. OGG-Vorbis, MP3, WMA, ...) nutzen (unter anderem) FFT zur Digitalen Verarbeitung und Komprimierung der Audiosignale...

Was möchtest du enn machen (nur mal so aus Interesse) ?

09.03.2010 - 10:02 Uhr

Ich habe meine 2 Ausgaben (01/10 und 02/10) auch gerade bekommen und gleich das Abo "gekündigt". Mal schauen, was so drinsteht...

03.03.2010 - 09:53 Uhr

Wow! Nach so langer Zeit noch eine Antwort, cool 😃

Da ich das immer noch gebrauchen kann, werd ich das nachher mal ausprobieren...

08.01.2010 - 10:52 Uhr

Hallo,

hat dieses Problem mittlwerweile jemand gelöst?
Ich hab nämlcih das gleiche Problem in einer .net2.0-Anwendung, die auch die SerialPort-Klasse nutzt.
Mit Application.ThreadException läßt sie sich bei mir auch nicht fangen. Ich bekomme lediglich in AppDomain.CurrentDomain.UnhandledException mit das die Ausnahme auftritt, aber dann schmiert die Anwendung ab, ohne dass ich es verhindern kann.

Weiß jemand Rat?

14.12.2009 - 09:40 Uhr

Hallo,

hier noch ein Screenshot von dem gewünschten Verhalten...

11.12.2009 - 07:30 Uhr

Hallo,

ich nutze zum Darstellen von Objekteigenschaften in einer Anwendung ein von DataGridView abgeleitetes Control welches unter anderem DataGridViewComboBoxCell-Zellen enthält.
Im System.Windows.Forms.PropertyGrid von Microsoft habe ich gesehen, dass die ComboBoxen darin ein paar nette Funktionen unterstüten, wenn sie aufgeklappt sind:

  • sichtbarer Bereich wird nach links verschoben, wenn die Combobox am rechten Bildrand ist.
  • die Größe kann mit so etwas wie einem SizeGrip unten links in der ComboBox verändert werden, wenn viele Elemente enthalten sind.

Die standard-ComboBox scheint das nicht zu unterstützen.

Wie kann ich diese (oder zumindest eine der Funktionen) in den DataGridViewComboBoxCell-Zellen realisieren?

Besonders wichtig wäre für mich die Sache mit dem sichtbaren Bereich, da sonst Teilweise die ComboBox am rechten Bildschrimrand "verschwindet"...

Danke!

17.11.2009 - 08:40 Uhr

Hey.
Das (Punkt 3) sieht ja recht vielversprechend aus. Danke für die Tipps!

Hat denn mit sharpPDF oder PDFSharp schon jemand Erfahrung und kann mir sagen, welche Lib besser geeignet ist? Wie gesagt, alles was ich bracuhe ist eine Möglichkeit die PDFs anzuzeigen und zu bestimmten Markierungen zu springen...

Gruß

16.11.2009 - 12:39 Uhr

Hallo,

ich habe eine Frage zu pdf-Files.

Öffnen kann ich eine lokal verfügbare pdf-Datei ja ziemlich einfach über


Process.Start(abc.pdf);

Aber ich habe leider keinen Ansatz, was ich machen muss um nach dem Öffnen automatisch zum Beispiel Seite 12 anzuzeigen.

Noch besser wäre, zu einer bestimmten Markierung (es gibt doch sowas wie pdfmark oder so ? ) zu springen...

Hat jemand eine Idee?

Danke!!

13.10.2009 - 10:11 Uhr

Hallo zusammen,

ich brauche die beiden Tools vsvars32.bat und editbin.exe, welche ja eigentlich mit Visual Studio mitgeliefert werden sollten.
Leider scheinen ausgerechnet diese beiden Dateien bei mir zu fehlen.
Ich habe Visual C# 2005 Express und Visual C# 2008 Express installiert.
Sind diese Tools in den Express-Versionen nicht vorhanden oder warum fehlen die bei mir?
Oder gibt es sie vielleicht in Visual C++ Express oder so?

Danke!

04.05.2009 - 10:47 Uhr

Nein, das mein ich leider nicht.
Der RowHeader soll schon dargestellt werden, allerdings nciht der Pfeil darin:

04.05.2009 - 10:32 Uhr

Hallo,

ich habe ein Problem mit dem DataGridView. Wie kann ich die Pfeile in der RowHeader-Zellen ausblenden?

Danke für die Hilfe!

Mfg

30.04.2009 - 12:02 Uhr

Perfekt 😃

dankeschön!

30.04.2009 - 11:44 Uhr

Hallo,

in der Suche habe ich leider nichts passendes gefunden. Asche über mein Haupt, falls ich die falschen Suchbegriffe verwendet habe 😉

Also:

Gibt es in .NET eine einfache Möglichkeit, bestimmte Standard-Sounds auszugeben, wie zum Beispiel ein "Bing" als Bestätigung, dass eine Aktion erfolgreich ausdgeführt wurde oder so ähnlich?

Console.Beep() hört sich ja nicht so toll an 😉

Danke!

03.04.2009 - 07:56 Uhr

nein, das ist nicht die lösung. ich will ja erlauben, dass der anwender von hand werte eingibt. nur dürfen die eben nicht ungültig sein...

02.04.2009 - 15:35 Uhr

Hallo zusammen,

ich habe ein kleines Prolem an dem ich jetzt schon seit längerem herumprobiere.
Ich habe mir ein Control geschrieben, welches zur eingabe iner Zahl dient.
Es bekommt einen minimal-wert und einen Maximal-Wert übergeben und nutzt ein NumericUpDown-eingabefeld.
Mit dem Button "OK" oder der Enter-Taste soll das Fenster mit ResultCode.OK geschlossen werden und die Nummer wird im Programm weiterverarbeitet.

Dummerweise kann der User aber über die Tastatur ja Werte eingeben, die außerhalb des zulässigen Bereiches liegen.
Dies wollte ich mit dem Ereignis "Validating" abfangen. Ist der eingegebene Wert ungültig, wird über einen ErrorProvider der Fehler signalisiert.
Das klappt auch gut, solange man die Enter-Taste benutzt. dann wird der Fehler angezeigt und die Form nciht geschlossen.
Beim Klick auf "OK" wird allerdings wenn z.B. ein zu großer Wert eingegeben wurde, irgendwie automatisch der maximal-Wert eingetragen und dieser dann übernommen, was natürlich nicht geschehen darf.
Wo liegt denn der Fehler?

04.03.2009 - 12:24 Uhr

Hallo, hatte eben wenig Zeit, sorry für die kurze Antwort.

also den Referenz-Zähler gibt es definitiv, so ist es in der msdn dokumentiert.

und zu meinem konkreten problem:
ich würde dann während des setups gacutil.exe in ein temp-verzeichnis extrahieren und nachdem die dlls mit referenz-zähler installiert worden sind, wieder entfernen.

wäre das erlaubt?

04.03.2009 - 09:15 Uhr

Danke für die Antworten!

Referenzzähler gibt es nicht.
Deshlab deinstalliert man auch keine DLL's aus dem GAC

Das stimmt (beides) ganz und gar nicht.

in den gac würd ichs nur unter "besonderen" umständen geben. besser die dll im verzeichnis ausliefern, dann hast du das problem nicht.
und der verbrauchte speicher ist in 99% der fälle zu vernachlässigen

Da hab ich leider keine Wahl. Das wird von einem drittanbieter vorgegeben.

Der GAC unterstützt einen Referenzzähler, ähnlich wie bei COM-Bibliotheken. Bei Gacutil wäre es die Option /r.
Allerdings sollte man GacUtil zur Auslieferung nicht benutzen. Das ReferenceCounting wird automatisch beim MSI-Installer verwendet.

Das Problem ist, dass ich keinen MSI-Installer verwende, sondern INNO-Setup. Dürfte ich denn, rein vom Lizenzrecht her, gacutil.exe dazu verwenden?