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 DarKlajid
Thema: DataGrid (1.1) binding an CollectionBase
Am im Forum: GUI: Windows-Forms

Hi.

Irgendwie gehen mir die Suchworte langsam aus. Was ich machen moechte ist folgendes:

Ein DataGrid (Ich arbeite in diesem Projekt gezwungenermassen noch mit 1.1) soll eine Liste von (von mir erstellten) Objekten darstellen. Die einfachste Variante die ich bisher gefunden hab sieht so aus:


public class FilterCollection : CollectionBase {
...
}

public class FilterItem {
// Hier mein eigener Kram, z.B.
public string Foo { get { return "Bar"; } }
public string Bla { get { return "Fasel"; } }
}

und irgendwo halt erstelle ich eine solche Collection, befuelle sie mit Items, haenge sie an ein DataGrid und die Properties werden automagisch angezeigt.

Nun moechte ich genau dieses Defaultverhalten aendern: Ich wuerde gerne:
- Spalten verstecken/in der Reihenfolge aendern
- Titel/Header Texte anders nennen als die Properties

Zunaechst sahen DataGridTableStyle und DataGridTextBoxColumn ganz passabel aus, aber offensichtlich kann ich in diesem Szenario nicht mit MappingName arbeiten.
Eine DataGridTextBoxColumn mit .MappingName "Foo" bezieht sich leider nicht auf die Property Foo. Irgendwelche Tricks wie ich das doch noch hinbekomm?
Die Daten kommen aus keiner Datenbank, es gibt keine irgendwie relevante Datenquelle bisher, d.h. ADO.Net kann mir nicht helfen.

Danke im voraus,
Ben

Thema: Regex für Leerzeichen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

In pcre Notation:

s/ {2,}/ /g

oder

s/ +/ /g

Sollte es tun..

Edit: Ups, falsch gelesen. Danke, herbivore

Thema: [gelöst] dll import mit vs2005
Am im Forum: Rund um die Programmierung

Du hast dich verlesen. Was nicht geht (nach wie vor nicht, deine Antwort hat nichts damit zu tun) ist die Nutzung von C++ _Klassen_ und deren Methoden von C# aus. Das hat nichts mit Inverse P/I zu tun..

Thema: Ankh nicht empfehlenswert oder?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich kann mich nicht beklagen und verstehe bisher auch nur einen Punkt:
Die Fehlermeldungen die man anscheinend in der Team Editon zu sehen bekommt.

Das bei einem Konflikt die Daten in der entsprechenden Datei landen ist normales Subversion Verhalten und wuerde mich eher stoeren, wenn es _nicht_ passieren und damit meinen Erfahrungen widersprechen wuerde.

Die "Moeglicherweise werden nicht alle Dateien aktualisiert" Beschreibung kann ich bisher nicht bestaetigen und die klingt hier auch bei jedem vage, vorsichtig und ungeprueft.

Mein Fazit: Nicht besonders schoen, aber funktioniert. Andererseits bin ich von meinen Tools auch sonst eher verwoehnt (IntelliJ, Eclipse) und sehe hier generell noch einen grossen Nachholbedarf.

Thema: Hohe Systemlast durch Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Kommando zurueck, ich konnte nicht lesen. SetMaxThreads() gibt es ja erst ab 2.0

Thema: Echtzeit und C# ? Genauer Timer ?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hmm.. Kuka sagt auf der Homepage, dass sie VxWorks oder Windows CE _parallel_ zu Windows XP auf einem einzigen Prozessor hart echtzeitfaehig kriegen..
Hmm - das sieht zwar serioes aus, widerspricht aber all meinen Kenntnissen ueber Windows (und u.a. auch PC Hardware, eine Architektur die dafuer mal bescheiden geeignet ist). Interessant jedenfalls.

Thema: Echtzeit und C# ? Genauer Timer ?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Es gibt immer noch Unterscheidungen bei dem Wort "Echtzeit". Dass ein normales Windows-OS zu harter Echtzeit faehig ist, glaube ich nichtmal im Ansatz. Dass PC Hardware aus dem Regal dazu faehig ist ebensowenig. Fuer "weiche" Echtzeit mag es Workarounds/Tools etc. geben, aber deswegen wuerde ich trotzdem keine Raketen mit Windows und nem Standard-PC als Navigationssystem ausruesten..

Thema: (Inverse) P/I Problem (Marshalling?)
Am im Forum: Rund um die Programmierung

So, Problem geloest, dank Svenson.

Loesung:


[StructLayout(LayoutKind.Sequential,Pack=0,CharSet=CharSet.Ansi)]
public sealed class Region {    
  public string Result { get { return Marshal.PtrToStringUni(this.resultPtr); } }

  [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)]
  public char[] Version;
  public Int32 Size;
  public Int32 Type;                
  public Int32 Left;
  public Int32 Top;
  public Int32 Width;
  public Int32 Height;
  public Int32 SomeInt;
  public Int32 AnotherInt;
  public Int32 AThirdInt;
  private IntPtr resultPtr;
  public Double Value;
  public Int32 ALastInt;    
}

Damit bleibt der String auch nach mehreren Aufrufen erhalten. Warum es jedoch vorher gescheitert ist bleibt ein Raetsel fuer mich. Nach wie vor kann ich mir nur vorstellen, dass da ein uebereifriges Framework meinte, der String gehoere ihm? Wie auch immer: Scheint zu klappen.

wakestar:
Keine Ahnung. Es ist eine normale Win32/Native DLL, Schnittstellen sind definiert fuer Delphi und C. Ich vermute es steckt auch C dahinter, weiss es aber nicht.

Edit: Typo raus.

Thema: Problem beim auslesen einer Datei
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von Cookiie
Im Quellcode müßte ja enthalten sein wie die Struktur der itemcache.wdb ist.

Aehm.. Und was ist mit dem Link auf die detaillierte Beschreibung des Formats, der zweimal oder mehr hier im Thread gepostet wurde? Da steht eigentlich alles nuetzliche drin..

Thema: (Inverse) P/I Problem (Marshalling?)
Am im Forum: Rund um die Programmierung

Nur als Verstaendnisfrage:
Du meinst aber schon nur den bisherigen String als IntPtr zu behandeln, oder? Nicht die gesamte Klasse Region?
Werd mich gleich mal damit auseinander setzen. Danke nochmal.

Thema: (Inverse) P/I Problem (Marshalling?)
Am im Forum: Rund um die Programmierung

StringBuilder habe ich versucht, da bekomme ich dann allerdings erst gar kein Resultat mehr zurueck. Und modifizierbar muss der String eig. auch nicht sein.. =/
Mal sehen, vielleicht muss ich damit mehr herumexperimentieren.

Speicherfreigabe ist kein Problem, weil die DLL zwingend spaeter noch mit diesen Daten weiterarbeiten muss. Es geht hier also an dieser Stelle nur um das abgreifen von Informationen.

Bloed gesagt:

1) DLLInit()
2) HierHoleIchdieRegion()
3) DLLFinalize()

Der Speicher wird schon spaeter freigegeben, nur habe ich aktuell eher das Gefuel dass ICH halt beim Marshalling (und wie gesagt, da bin ich recht unbeschlagen, thematisch) irgendwie dafuer sorge, dass der Speicher von mir/.Net gefressen wird. Was falsch waere..

Danke fuer die Hilfe soweit.

Thema: (Inverse) P/I Problem (Marshalling?)
Am im Forum: Rund um die Programmierung

Meine (absolut laienhafte) Vermutung ist halt, dass folgendes passiert (zumindest wuerde das das beobachtete Verhalten erklaeren):


// Hier kriege ich eine brauchbare (lies: Gefuelltes Result) Region
Region region1 = GetTestRegion();
System.Windows.Forms.MessageBox.Show("Result first time: "+region1.Result);
/* Ab hier weiss der Compiler, dass region1 unnuetz ist und collected sie vielleicht direkt?
   Was passiert dabei mit dem String? Referenziert der hier wirklich den unmanaged
   Kram, d.h. kann ich mir hier an dieser Stelle durch einen collect den Speicher den die
   DLL fuer den String reserviert hat zersemmeln?
*/
Region region2 = GetTestRegion();
System.Windows.Forms.MessageBox.Show("Result second time: "+region2.Result);

Thema: (Inverse) P/I Problem (Marshalling?)
Am im Forum: Rund um die Programmierung

Hmm.. Da hab ich mich wohl nicht klar ausgedrueckt. Die Parameter in TestRule kommen an. Ich hab das Inverse P/I nur erwaehnt, falls es irgendwie Seiteneffekte haben sollte. Ab dort (TestRule) ist es "normales" P/I.

Das genau geht anscheinend schief: Ich bekomme meine Instanz von Region, kann dort auf den String zugreifen. Ich hole die gleiche Region erneut (normalerweise nicht direkt danach, aber dieser Testcase zeigt das Problem) und nun ist der String futsch.

Bin ich schuld? Hast du ne Idee?

Thema: Problem beim auslesen einer Datei
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Schoen das es geht.
Das ist nur kein Leerzeichen (das waere eine 32dec/20hex als Wert) sondern ein NUL.
Das steht uebrigens auch genau so in der Dokumentation zu der Datei:

Zitat
The strings are null-byte terminated.

Thema: Problem beim auslesen einer Datei
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich rate eher zum C# Grundlagenbuch. Das Format ist ja unter dem o.a. Link exakt definiert. Wenn man es dann nicht auslesen kann wuerde ich eben erst zu einem generellen Tutorial raten. Nichts fuer ungut.

Thema: (Inverse) P/I Problem (Marshalling?)
Am im Forum: Rund um die Programmierung

Mahlzeit.

In einem Projekt hier setze ich inverse P/I ein, um aus einer Legacy Schnittstelle trotzdem C# nutzen zu koennen. Das Problem aktuell dabei ist folgendes:

Ich werde per Inverse P/I aufgerufen, lande in Funktion X, rufe von dort teilweise wieder per normalem P/I andere alte Komponenten auf. Dieses Design laesst sich nicht aendern, also helfen keine Kommentare zur Haesslichkeit.. =)

Meine Einsprungsfunktion ist TestRule und der Code sieht grob so aus:


// Externe Funktion und benutzter Datentyp
[DllImport("Some.dll", EntryPoint="EchterName")]
public static extern Int32 GetWorkingField(ref Region region);

[StructLayout(LayoutKind.Sequential,Pack=0,CharSet=CharSet.Ansi)]
public sealed class Region {    
  [MarshalAs(UnmanagedType.ByValArray,SizeConst=8)]
  public char[] Version;
  public Int32 Size;
  public Int32 Type;                
  public Int32 Left;
  public Int32 Top;
  public Int32 Width;
  public Int32 Height;
  public Int32 SomeInt;
  public Int32 AnotherInt;
  public Int32 AThirdInt;
  [MarshalAs(UnmanagedType.LPWStr)]
  public string Result;
  public Double Value;
  public Int32 ALastInt;    
}

public static int TestRule([MarshalAs(UnmanagedType.LPWStr)]string stringParam, int intParam) {
  Region region1 = GetTestRegion();
  System.Windows.Forms.MessageBox.Show("Result first time: "+region1.Result);
  Region region2 = GetTestRegion();
  System.Windows.Forms.MessageBox.Show("Result second time: "+region2.Result);
  return 1;
}

public static Region GetTestRegion() {
  Region region = new Region();
  GetWorkingField(ref region);
  return region;
}

Resultat: Die Methode TestRule wird aufgerufen (per Inverse P/I, falls das wichtig ist), holt sich ueber GetTestRegion() (Hier habe ich natuerlich vereinfacht, aber genau so laeuft es ab) eine Datenstruktur ueber einen P/I call und nutzt den. In diesem Fall hole ich mir also zweimal die gleiche Datenstruktur und gebe den enthaltenen String aus.
Das funktioniert nur einmal, leider, d.h. in TestRule (und auch danach, was fuer die Applikation eine mittlere Katastrophe ist) ist beim ersten Popup noch ein String Wert vorhanden, beim zweiten und allen folgenden Zugriffen nicht mehr. Es scheint als wenn ich irgendwie durch den blossen Zugriff/das Marshalling mir hier diesen Wert versaue/loesche. Bei den Int-Werten in der Struktur tritt das nicht auf.
Dieses Verhalten tritt auch nicht auf, wenn ich die Funktionalitaet (GetWorkingField() und dann Zugriff auf das Result) direkt aus einer unmanaged dll nutze (aber das ist wie gesagt nicht gewollt/machbar).

Hat jemand eine Idee was ich falsch mache?

Als Referenz hier nochmal die Definition der Region auf unmanaged Seite, falls es daran liegen sollte:

typedef struct {
   char        szVersion[8];
   long        lSize;
   long        iType;
   long        left, top, width, height;
   long        someInt, AnotherInt, AThirdInt;
   wchar_t    *szResult;
   double      dValue;
   long        ALastInt;
} TREGION;

Thema: OS unabhängige Programmierung
Am im Forum: Rund um die Programmierung

Ich wuerde bei Windows.Forms bleiben. Die Wahrscheinlichkeit, dass das was du brauchst bei mono nicht vorhanden oder fehlerbehaftet ist halte ich fuer sehr gering und fuer vernachlaessigbar.

Mono braucht man im Gegensatz zum .Net Framework nicht "installieren", nur mit ausliefern. Das macht fuer dein Problem mit der Groesse keinen Unterschied ist aber interessant beim Deployment ggf..

Datenbanken: Was haelst du von SQLite? Duerfte klein sein, gibt es fuer Windows und Linux (bei Mac wuerd ich es fast unterschreiben, hab es aber nicht nachgeschaut) und ist fuer kleinere Projekte wie dieses einfach zu nutzen.

GTK vs. QT koennte zwar zu einem netten Flame fuehren, grundsaetzlich sind aber beides "nur" andere Window Toolkits. Wenn du GTK# nicht nutzen willst weil es extra mitgeliefert werden muss, dann musst du auch auf QT verzichten.
Der Rest ist dann wohl reine Geschmackssache.

Thema: Dos-Konsole ständig auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Process Klasse kann die Standardausgabe umlenken, d.h. du kannst die Standardausgabe eines Prozesses lesen. Dort, in den StartInfo Einstellungen des Prozesses, kannst du auch dafuer sorgen dass keine Konsole aufgeht.

Auch wenn das immer wieder auftaucht: Das ist keine DOS Box.. Ausser du benutzt Windows 1.x, 3.x, 95, 98 oder ME.

Thema: Pause in einer For Schleife
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Disclaimer: Ungetestet, einfach nur hier im Editor geaendert.
Warum nicht so? Geaendert hab ich hier nur, dass using() {} verwendet wird. Und mich wuerde interessieren ob das Peek von dir besser oder schlechter ist als diese Version.


public htmlind(string lsUrl) {
  WebRequest WebReq = WebRequest.Create(lsUrl);
  using (WebResponse WebResp = WebReq.GetResponse()) {
    StringBuilder myBuildContent = new StringBuilder();
    ldScrapTime = DateTime.Now;
    lsErrorCode ="";
    try {
      using (StreamReader myStreamR = new StreamReader(WebResp.GetResponseStream(),
                    System.Text.Encoding.UTF7)) {

        string line;
        while ((line = myStreamR.ReadLine()) != null)
        {
          myBuildContent.Append(line);
        }
      }
    } catch (Exception e) {
      lsErrorCode = e.ToString();
    }
    lsHtmlContent = myBuildContent.ToString();
  }
}

  // Kram hier
}

Thema: Standart Mail-Programm aufrufen & Mail-Addy, Betreff & Anhang übergeben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


Komplett OT:

Zitat
Original von BerndFfm
...sondern den Client von ihrem Standard-Email-Programm, z.B. Groupwise, David, Outlook oder wie es heissen mag.
Nicht hauen (es ist ja auch albern): Ich hab mal bei Tobit gearbeitet.. Immerhin unterscheidest du schon zwischen Firma und Produkt (die meisten behaupten sie haetten "Tobit" gekauft oder als Mailloesung im Haus), aber David ist ein Serverprodukt, Outlook ein Client. David und Exchange oder (zumindest als ich da mal aktuell war) Tobit Infocenter und Outlook ware hier geschickter.

Sorry, ich konnte wirklich nicht widerstehen.

Aus purer Neugier: Nutzt du das System irgendwo? Bin seit Jahren bei denen weg, ueberlege aber mir das Zeug privat nochmal anzuschauen. Aber ich bin da seit David 6 raus..

Thema: Von einem Item in einer ArrayList die Dateiendung rausfinden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Was genau hast du denn vor, um mal von einer anderen Seite an das Problem heran zu gehen..
Du willst aber nicht gerade sowas wie:
"Gib mir alle Dateien der Endung XXX" mit einer solchen Schleife bauen, oder?

Thema: RegEx: Abfrage von beliebigen Zeichen inklusive Whitespace-Zeichen
Am im Forum: Rund um die Programmierung

Ich denke auch das Format muss besser definiert werden.
Bisher wuerde ich folgendes sehen/vermuten (und liege wahrscheinlich falsch):

Filename und bool sind immer auf einer Zeile, das Statement kommt erst danach.

Wenn das nicht gegeben ist:
Filename und bool werden in dem Ausdruch doch schon gut gematcht. Den Exportausdruck wuerde ich dann am Select oder eben an (select|update|...) verankern.

Im Endeffekt haben wir aber zuwenig Informationen.

Edit: Du kannst natuerlich das (greedy) .+ zu einem .+? zuegeln, um Herbivores Bemerkung zu kommentieren. Aber dein Format ist nach wie vor unvollstaendig erklaert.

Thema: RegEx: Abfrage von beliebigen Zeichen inklusive Whitespace-Zeichen
Am im Forum: Rund um die Programmierung

Dumm gefragt: In er letzten Gruppe willst du alles ab/inklusive dem Select..?
Wenn ja, dann sieh den Satz als Zaunpfahl.

Thema: Datei Zeilenweise mit Streamreader auslesen... Problem
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

ReadToEnd()
vs


string line;
while ((line = sr.ReadLine()) != null) {
  // Use line here
}

Thema: Allgemeine unmanaged Wrapper-DLL für C#-Bibliotheks-Assemblies
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

"Boeser Hack"? Noe, vom Framework supported und nuetzlich aus meiner Sicht. Gut, es braucht einen Roundtrip mit Assembly -> IL -> Assembly, aber das ist eher eine Dummheit/ein Problem des C# Compilers..

Ich denke aber, dass der Threadstarter Zugriff auf Objekte haben will (daher Reflection als Keyword). Dafuer sehe ich keine einfache (und vor allem performante) Moeglichkeit.

Thema: MaskedTextBox gibt es da nichts vernünftiges?
Am im Forum: GUI: Windows-Forms

Nitpicking/konstruktive Kritik meinerseits:

- Ich wuerde Sprachen nicht mischen. Das meiste ist deutsch, warum gibt es dann "lenght" statt "Laenge"?

- Tippfehler lassen zumindest mich stark stolpern beim lesen:

-- Length statt lenght
-- IsDigitOrDot statt IsDiditOrDot // Oder warum nicht auch deutsch?

- IsDiditOrDot hat als Argument einen String, obwohl die Bezeichnung (chr) und die Verwendung (wenn es nicht genau ein Zeichen ist passiert nix sinnvolles) hier eher char als Typ nahe legen wuerden.

- Obwohl ich gar kein hardcore Gegner von goto bin (es gibt Stellen, da ist es lesbar und macht Sinn): Uber das "zurueck:" label bei dir bin ich auch gestolpert.. Hier kann man sich streiten, aber ich wuerde wohl behaupten das macht hier keinen Sinn. Es scheint nur

e.Handled = false
zu ueberspringen und dafuer ist es nun wirklich nicht noetig und zu igitt.

Thema: [Solved] Control.Dock neu erzwingen?
Am im Forum: GUI: Windows-Forms

Hi.

Control.Dock macht mich noch wahnsinnig. Nachdem auf meine letzte Frage hier schon jemand mit dem hilfreichen Hinweis auf die Z-Order kam, habe ich nun ein neues Problem:

2 Panel in einem Form nebeneinander, PanelA und PanelB.

PanelA hat den DockStyle.Fill
PanelB hat den DockStyle.Left (geht) oder .Right (geht nicht)

Besonderheit: Das PanelB zeigt DinA4 Daten an und passt bei einem SizeChanged seine eigene Breite auf das entsprechende Verhaeltnis (1 : 1.4241) an.
Ist es links von PanelA, dann funktioniert das hervorragend: PanelB frisst den restlichen Platz.
Ist es rechts von PanelA, dann funktioniert es _nur_, wenn ich die Fensterbreite veraendere (logisch: Die Hoehe des PanelB aendert sich nicht, das Verhaeltnis von Breite zu Hoehe stimmt und es wird nichts gemacht). Aendere ich aber die Hoehe (oder Hoehe und Breite), dann scheint das DockStyle.Fill nicht zu greifen bzw. zu spaet zu kommen. Meine Interpretation:

1. User aendert Form.Size
2. Form ermittelt Groessen anhand der DockStyles
3. PanelB kriegt ein SizeChanged und aendert seine Breite

Resultat: Es sieht scheisse aus. Was kann ich machen?

Zur Verdeutlichung ein Bild des Problems, eingefaerbt um das Problem zu zeigen: (Siehe Anhang)

Hilfe?

Hmpf. Es scheint nun zu gehen, mittels


this.Parent.ResumeLayout(true);
this.Parent.Refresh();
Haesslich allerdings, irgendwie..

Thema: Informationen von DosBox / Dienst auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Was genau ist eine DosBox? Dos gibt es seit Windows NT nicht mehr wirklich.. Und das kam deutlich vor .Net/C# raus..

Ich nehme an du meinst auf der Standardausgabe wird etwas ausgegeben, richtig? Wenn du das Programm selber starten kannst/Einfluss auf das starten hast, dann kannst du die Standardausgabe in eine Datei umlenken.

DeinProgramm /debug > EineDatei

Danach koenntest du die Datei ueberwachen und auslesen.

Unter *nix gibt es fuer diesen Fall das nuetzliche Tool "tee", das seine Eingabe in eine Datei schreibt und wieder auf der Ausgabe ausgibt. Dort haette man dann an deiner Stelle

DeinProgramm /debug | tee EineDatei

benutzt. Vielleicht hilft dir diese Information um nach einer aehnlichen Loesung fuer Windows zu schauen?

Thema: Textdatei kompleziert zerlegen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von BerndFfm
Oder so :


string text = File.ReadAllText("Testdatei.txt");
text = text.Replace("\r\nTest","\r\n|Test");
string[] felder = text.Split('|');

Als Trennzeichen (hier |) musst Du natürlich ein Zeichen wählen dass nicht im Text vorkommt.

Nur aus Neugier: Warum soll er hier erst aus einer Trennmarkierung eine andere machen?

Thema: [Artikel] Custom Window Border für Form's
Am im Forum: Artikel

Mahlzeit.

Ich find das Thema hochinteressant, hab aber mit beiden hier geposteten Beispielen noch ein Problem:




[EDIT=herbivore]Die Bilder leider nicht mehr verfügbar. Daher Bilder statt sie über [IMG] einzubinden bitte immer als Dateianhang hochladen. Vielen Dank![/EDIT]

Warum erscheinen dort dann doch manchmal die Originalbuttons von Windows?
Beim ersten Beispiel ist das trivial zu demonstrieren, es passiert bei mir immer wenn ich zum ersten Mal mit der Maus ueber diese Region fahre.
Beim zweiten Beispiel ist es schwieriger zu triggern, scheint erst nach Aktivierung/Deaktivierung von Buttons (Beispiel: Maximieren) zu passieren, ebenfalls dann sobald man mit der Maus ueber diesen Bereich faehrt.

Ideen, wieso das passiert und wie man das unterdrueckt?