Laden...

Forenbeiträge von jaensen Ingesamt 2.760 Beiträge

28.01.2010 - 15:49 Uhr

Fiddler anschmeissen, schauen was geschickt wird, nachbauen, Fertig.
Das sollte bei HTTP ja an und für sich immer funktionieren. Mit den Logs des CGI-Skripts lässt sich nämlich für uns nicht wirklich was anfangen da wir das Skript nicht kennen.

[EDIT]
Zusätzlich noch: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2

28.01.2010 - 14:32 Uhr

der XmlSerializer erstellt doch automatisch ein konformes XML Dokument

Ja, das schon aber wenn du eine XSD hast dann kannst du dir die entsprechenden Klassen die de/serialisiert werden sollen mit xsd.exe generieren lassen und brauchst keine Zeile Code für deine Datenobjekte mehr zu schreiben. Auch das versehen mit Attributen übernimmt das Teil für dich. Wenn die automatisch generierten Klassennamen nicht passen dann kannst du einfach im Studio Refactor->Rename benutzen und die Serialisierung klappt trotzdem noch wie erwartet da die Attribute nicht angefasst werden.

Die XSD schreibt sich halt schneller als der C# Code 🙂

[EDIT]

Womit erstellst du das Xml Schema?

Mit einem Texteditor 😉 (Scite)

28.01.2010 - 13:29 Uhr

Mein Favorite ist der XmlSerializer. Ich finde da absolut easy to use XSD erstellen, code generieren und ab gehts. Allerdings habe ich auch fast nie die Notwendigkeit verschiedene user spezifische Configs verwalten zu müssen sonder eigentlich immer nur eine Applikationsweite Config.
Config in der DB ist auch eine coole Möglichkeit, benutze ich aber in der Regel nur für simple Key-Value Einstellungen.

27.01.2010 - 16:19 Uhr

Du kannst auch eine DataTable nehmen, da drin können die Name öfter vorkommen und du kannst trozdem schnell suchen und darauf zugreifen.

26.01.2010 - 18:47 Uhr

pictureBox.Bounds.IntersectsWith(button.Bounds)

26.01.2010 - 18:40 Uhr

Noch geht das nicht, aber mit .Net 4.0 wird das durch den Einsatz von DynamicObject gehen. Ob das für so einen Fall wirklich schön und nötig ist sei mal dahingestellt.

26.01.2010 - 18:19 Uhr

Manche Objekte kann man nicht anders übertragen (z.B. fehlendes SerializableAttribute oder was auch immer...)
aber grundsätzlich brauchts das nicht. Das verursacht nur mehraufwand wenn weitere Typen dazukommen und erhöht die Fehleranfälligkeit.
Eventuell ist es aber auch Code der für die Kommunikation mit einem Altsystem notwendig ist.

25.01.2010 - 19:15 Uhr
xml_data.SelectSingleNode("NameDesNodes")  

NameDesNodes muss ein XPath sein sonst klappts nicht. In deinem Fall würde das XPath so aussehen: "tables/table[1]/tablename" und würde dir die Test1-Node zurückgeben.

Guckst du hier: w3schools XPath tutorial

25.01.2010 - 18:28 Uhr

aber dies scheint zur Erstellung eigener Webseiten zu sein

So isses 😉
Also brauchst kein ASP.Net sondern nur die Document-Eigenschaft des WebBrowser Controls zu bemühen.
Da gibt es Append und Remove Methoden für alle Elemente und du fügst einfach das hinzu was du gerne drin haben möchtest oder schmeisst das raus was du nicht drin haben möchtest.

25.01.2010 - 18:09 Uhr

ja, wenn man den Typen selbst erstellt. Ansonsten kann man wie schon vorgeschlagen nur etwas drum herum bauen (wobei man dann ISerializeable implementieren muss).

25.01.2010 - 17:40 Uhr

was aber wenn verschiedene zeichnungen

Dann brauchst du einen Z-Index. Du möchtest eine Art Zeichenprogramm bauen? Dieses Control nur wegen den Transformationen zu benutzen und alles andere (für ein Zeichenprogramm essentielle) hinzufrickeln ist wahrscheinlich eher suboptimal.
In der WPF ist doch eigentlich so gut wie alles schachtelbar. Warum benutzt du nicht einfach ein Canvas und packst da alle deine geometrischen Objekte rein und baust dann dort für Freihandzeichnungen ein weiteres Control rein? Transformieren kann man in der WPF ja eigentlich auch jedes andere Control.

hatte versucht sowas als eigene zeichenanwendung nach herbivores tut zu bauen, jedoch bekomme ich dort die transformierung nicht implementiert

GDI? System.Drawing.Drawing2D.Matrix?

25.01.2010 - 17:16 Uhr

also die eckpunkte habe ihc mit GetBounds()

Als Rechteck? Oder als Array welches den gesamten Pfad abbildet?
Also grundsätzlich kannst du doch dann einen Hittest wie für ein Polygon bauen. Vorausgesetzt deine Figur ist geschlossen und du hast alle Punkte aller Kanten.

Aber ich glaube ja fast das du dieses Control "misbrauchst" da es sich wohl nur für Linienzeichungen eignet.

25.01.2010 - 17:09 Uhr

Hab eigentlich keinen Peil von dem InkCanvas aber da mir noch keiner wiedersprochen hat das das Vektorgrafiken sind gehe ich einfach mal davon aus das du doch die Eckpunkte einer jeden gezeichneten Form kennst. Dann sollte es doch auch möglich sein eine gefüllte Fläche über diese zu legen was ja dann dem füllen entsprechen würde.

Hast du diese Eckpunkte nicht so kannst du deine Form in ein Bitmap umwandeln, die Eckpunkte suchen und dann die Fläche als Vektorgrafik erstellen.

Keine Ahnung ob ich da nicht völligen Schwachsinn rede. Aber das nur mal als Idee.

25.01.2010 - 12:52 Uhr

Hmm... keine Ahnung wie schnell jetzt dieser generator ist. Aber su könntest es ja einfach mal messen. (Stopwatch)

Ansonsten lassen sich sichere Zufallszahlen z.B. aus Mausbewegung, Tastaturanschlag, Umgebungsgeräusch und radioaktivem Zerfall 😉 schnell und sicher erzeugen.

Kommt halt darauf an was du brauchst.

25.01.2010 - 12:39 Uhr

Zeichne doch nur einmal deinen Farbverlauf wie du ihn haben möchtest und setze dann für den wirklcihen Fortschritt einfach eine ClipRegion oder überpinsel ihn wieder entsprechend. so musst du dich nicht bei jedem Zeichnen darum kümmern das dein Farbverlauf auch wirklcih korrekt ist.

25.01.2010 - 11:40 Uhr

Oops, sorry da hab ich dich wohl vergessen.

Die Werte gehören zur selben Steuerung, stehen aber erstmal in keinem Zusammenhang

Dann würde ich nur die Werte die auch einen Zusammenhang haben in eine Struktur packen. Ich stelle mir das gerade ein bisschen so vor als ob du Sensordaten erfassen möchtest (oder zumindest so ähnlich).

in[1]=out[1].

Ich ging bislang davon aus das du lediglich ein Monitoring schreiben möchtest. Ändern denn die erfassten Werte über deine Software etwas am Ablauf?

Meine Idee wäre sonst folgende gewesen:
Ein Interface "IDataSource". Eine Instanz einer implementierung dieses Interfaces repräsentiert einen Sensor. Das Interface besitzt lediglich ein event NewData, eine Start() und eine Stop() Methode.
Dann dein Singleton als DataStore welches für mehrere IDataSources Ringbuffer verwaltet. IDataSource-Objekte können dort registriert und wieder abgehängt werden.
Der DataStore bietet wiederum ein event an das gefeuert wird wenn sich was an einem Ringbuffer für eine spezifische Quelle etwas geändert hat, wenn eine neue Quelle registriert wurde und wenn eine abgehängt wurde.

Die Ringbuffer sind nicht abhägig von der Existenz einer Quelle und können seperat erstellt und gelöscht werden so das du deine View noch nicht abklemmen musst sobald die Source weg ist sondern noch die "alten" Daten anzeigen kannst. Auf diese Weise kannst du auch mehrere Sensoren in ein und den selben Buffer schreiben lassen.

Die IDataSource Instanzen haben dann in der Regel einen eigenen Thread (durch aufruf von Start() gestartet) und greifen die Daten z.B. in intervallen ab. Wenn neue Daten da sind wird das event gefeuert, die Daten in den entsprechenden Buffer geschrieben und das Frontend benachitigt.

Quellen werden zum Start der Anwendung über eine XML-Config geladen. Beispielsweise:


<DataSources>
   <DataSource Name="Mein Sensor">
      <SourceType>DataSources.TempSensor</SourceType>
      <DataType>System.Int32</DataType>
   </DataSource>
</DataSources>

Wobei alle quellen mit einem Namen angegeben werden können. Außerdem der Type der zu instanzieren ist (SourceType) und den Type der Daten welche sie liefern (DataType) z.B. einen Int32.

23.01.2010 - 00:22 Uhr

Ja, das ist mir klar. Aber:

  1. muss ich mal sagen das hier: [Hinweis] Wie poste ich richtig? 4a und 4b doch eine sehr eindeutige Position vertreten wird die ich ebenfalls unterstütze
    und 2. Ich selber mit dem Teil noch nie was gemacht habe da ich seit langem bereits mein eigenes Zeugl dafür habe und mich selbst erstmal damit beschäftigen müsste.

Da ich allerdings glaube das dN!3L da sicher ein Stück guten Code gepostet hat dürfte dir die Einarbeitung sicher nicht so schwer fallen.

23.01.2010 - 00:04 Uhr

Wenns nur das ist dann würde ich dir empfehlen HttpWebRequest zu benutzen anstatt dich mit dem WebBrowser-Control rumzuschlagen.
Guckst du hier: WebClient mit HTTP-POST- und Cookie-Unterstützung

22.01.2010 - 19:45 Uhr

@Schamese
Uh, eiskalt erwischt. X(
peinlich, peinlich... 😉

22.01.2010 - 18:07 Uhr

eswegen meine Idee mit der zentralen Funktion. Die SQL-Server-Schicht steht. Jetzt nur die SP's vom WS aufrufen und fertig ist die WS-Schicht.

*Urgh* so war das nicht gemeint.

22.01.2010 - 18:05 Uhr

liegen in Arrays vor (ca 2x 100 Bool und 100 Double Werte)

Wenn diese Werte zusammengehören dann packe sie in ein struct anstatt über einzelne Arrays mit dem selben Index die Werte zu holen.

Hmm. Macht es sinn daraus eine Klasse zu schreiben?

Klingt jetzt sehr pauschal (ist es auch 😉: Viele Klassen machen oft Sinn.
Weil: Mehrere kleine Klassen die nur eine Aufgabe haben wesentlich leichter wartbar sind als wenige große "Monolithen" in denen du dann oft mit Seiteneffekten zu kämpfen hast wenn du sie anpassen möchtest. Außerdem "durchwachsen" sie oft anfänglich evtl. sogar sauberes Design (wie ein Baum dessen Wurzeln aus der Straße ragen obwohl sie eigentlich darunter gehören 😉

Klasse IO vererbt an Klasse Eingang

Hmm.. lieber mit einem Interface beginnen weil du dich dann nicht von der Basisklasse abhängig machst und Probleme bekommst wenn du z.B. was bestehendes anbinden musst das bereits eine Basisklasse hat (C# -> keine Mehrfachvererbung). Wobei man das dann auch über Komposition in den Griff bekommen könnte.

So viel erstmal (damit ich meinen Bus nicht verpasse 😉 aber Teil 2 folgt dann wenn ich zu Hause bin.

22.01.2010 - 17:53 Uhr

Das ganze konstrukt ist in meinen Augen schon horror (aber sehr weit verbreiteter). Aus dem mache man:


         if (!File.Exists(swFile.FullName))
            throw new FileNotFoundException("Bla"); // alternativ return;

         int tmpCounter = 0;

         StreamReader txtReader = File.OpenText("tmp/file.txt");
         string tmp = String.Empty;
         while ((tmp = txtReader.ReadLine()) != null)
         {
            if (tmpCounter != 1)
               continue;

            this.label9.Text = tmp;
            tmpCounter++;
         }

         txtReader.Close();

Jetzt mal ohne irgendwas außer einigen Bedingungen zu änder finde ich das viel schöner (Macht bei dem Beispiel jetzt nicht so viel aus aber man stelle sich das mal in einer verschachtelten Schleife mit zig Bedingungen vor). Lieber prüfen ob was nicht passt als prüfen ob es passt. Das setzt halt in den meisten Fällen voraus das man kleinere Methoden macht.

22.01.2010 - 17:24 Uhr

Hast du es in zwei verschiedenen Studios offen (einmal Client, einmal WS)? Dann Attach to process benutzen (k.A. wie das im dt. Studio heißt). Ansonsten kann das vielfältig sein je nach dem ob du den VS Webserver oder den IIS benutzt.
Das ist eher kein Thema für diesen Thread (evtl. einen neuen in Infrastruktur oder so aufmachen).

  • Im Client den Zugriff von SQL-Server auf WS switchen

Den Punkt finde ich gerade noch recht interessant. Wenn ich das richtig verstehe dann hast du da noch einen größeren Umbau vor dir da ja die direkte Datenbankzugriffsschicht das selbe Interface wie der Webservice haben sollte.

22.01.2010 - 17:09 Uhr

Wie äußern sich denn die Abstürze (einfach weg oder OutOfMemoryException)? Du musst die gelesenen Daten natürlich auch wieder loswerden (Ringbuffer und bei überlauf in eine DB sichern oder so...).
Da müsste man jetzt schon ein bisschen mehr wissen (z.B. in welcher Form die Daten vorliegen um eine geeignete Struktur zur Speicherung zu finden die auch das auswerten einfach macht).

Mittels Hash-Funktion wird überprüft ob sich ein Wert geändert hat und bei Bedarf ein Event erzeugt, wodurch ein Neuzeichnen der Werte ausgelöst wird.

Das würde ich ja fast weglassen und immer im Interval neuzeichnen, das dürfte es schon einfacher machen. Wenn du diese Funktionalität willst/brauchst dann baue sie nicht in den Kern sondern werfe immer ein Event das neue Daten da sind (auch wenn sie gleich sind) und prüfe an den Stellen wo die Daten verarbeitet werden ob ein neuzeichnen oder was auch immer veranlasst werden soll.
Damit du das nicht in allen möglichen Ansichten machen musst registriere immer nur die aktive View und deregistriere und dispose derweil alle anderen. Natürlich kannst du auch mehrere gleichzeitig dranhängen (z.B. für Logging).

Wie komplex ist denn die Darstellung?

22.01.2010 - 16:32 Uhr

Wie stellst du dir die denn genau vor?
DataSet/Table ExecuteQuery(string pwd, string storedProcedure, Sql/MySpecialParameter[] parameters)?

Und bei einigen von mir genannten Änderungen dann:


switch(storedProcedure)
{
   case "DeleteUser":
      // mir ist eingefallen ich muss da noch was tun
   break;

   case "...":
      // mir ist eingefallen ich muss da noch was tun
   break;

   case "...":
      // mir ist eingefallen ich muss da noch was tun
   break;
}

Außerdem ist das wenig intuitiv. Die Webservice-Schicht könntest du dir dann auch gleich sparen. Die Argumente sind nicht Compilergeprüft, du verwendest "magic strings", du bist mit der Übergabe des Typen im Parameter evtl. Datenbankgebunden etc...

Der Webservice sollte doch eigentlich eine Abstraktionsschicht zwischen deiner DB und dem Client sein so das du beispielsweise auch komplexe Objekte (z.B. einen User anstelle einer DataTable mit einer/mehrerer Row/s und irgendwelchen Spalten die dein Client dann wieder anhand des Namens kennen muss) zurückgeben kannst.

22.01.2010 - 15:59 Uhr

(Mal was anderes: Bin kein WPF Pro aber das sind doch Vektorgrafiken?! Ist das nicht ne Menge Holz Punkt für Punkt zu füllen wie würde das denn in nem SVG aussehen 😉 oder arbeitet das Ding auf nem Bitmap?

22.01.2010 - 15:40 Uhr

Wieso ist das mit dem Passwort nicht wirklich sicher?
(Wenns geht, bitte genau die Lücke erklären)

Gerne, das Passwort an sich wäre (je nach implementierung) schon sicher. Evtl. war das ein bisschen zu weit gegriffen. Allerdings würde das dann nichts an der SQL-Injection Möglichkeit ändern da der Benutzer das Command ja trotzdem nach belieben bauen könnte.

Problem beispielsweise wenn dein WS-Client bereits über eine Berechtigungsprüfung verfügt und jmd. z.B. nur Bestellungen lesen können soll. Dann hat er das Pwd für den WS und kann trotzdem auf der Datenbank wurschteln wie es ihm gerade passt.

Für jedes select eine Web-Methode? Dann schreib ich den Client ja 2mal... 😃

Hmm.. nicht direkt. Dein Webservice wäre dann deine Datenzugriffsschicht (vom Client aus gesehen), der Client kennt die Geschäftslogik, keine SQL-Statements. Damit wäre die Implementierung sauber und du könntest an der Datenschicht (WS) erweiterungen vornehmen ohne den Client ändern zu müssen (Fehler beheben ohne neuen Client rollout, performanceverbesserung ohne Client Rollout, DBMS ändern ohne Client Rollout usw.).

Naja, dann bau ich mir jetzt selbst ein Array in dem alle Parameter drin sind (also aufgeschlüsselt in Name, Datentyp, Value) und übergebe das der WS-Methode. Eure Meinung dazu bitte.

O.k. das würde bis zu einem gewissen grad auch alles mit deiner neuen Methode funktionieren aber eben nicht alles. Lieber nach dem Konzept von kleines_eichhoernchen aufbauen.

22.01.2010 - 13:43 Uhr

Was kleines_eichhoernchen meinte ist das man SqlParameter eben genau gegen SQL-Injection Attaken einsetzt, dem Verwender der Software aber nicht ermöglicht sein eigenes Command in die Anwendung zu bauen da ja genau das wieder SQL-Injection möglich machen würde.
Benutze den SqlParameter nur in deinem eigenen Code und nehme keinen von außen an (mal abgesehen davon das das wie du ja gemerkt hast sowieso nicht geht).

Der Ansatz von kleines_eichhoernchen ist schon genau richtig, anders sollte man es nicht machen. Und Arrays kannst du sowohl an einen ASP.Net WS als auch an einen WCF WS übergeben. Diese sind im SOAP-Protokoll spezifiziert.

P.S: Das passwort bietet da auch keine wirkliche Sicherheit.

Was willst du überhaupt machen? Eigentlich doch nur Kriterien für eine Abfrage übergeben?! Dann nimm doch einfach die richtigen Typen für die Kriterien z.B.: gibt mir alle Sendungen mit mehr als 100 Packstücken (=, > oder whatever z.B. als Enum, den Wert als int) SqlParameter brauchst du da von außen nicht. Siehe: [Artikelserie] Parameter von SQL Befehlen

22.01.2010 - 11:32 Uhr

Oben links neben deinem Benutzernamen [Abmelden]

22.01.2010 - 11:06 Uhr

Nur um ganz sicherzugehen (nicht schlagen):
Du sucht aber kein ToolTip?

22.01.2010 - 11:02 Uhr

Nichts für ungut, aber wie wärs mit dem Supportforum des Herstellers?

22.01.2010 - 10:50 Uhr

Nimm die WPF bzw. Silverlight, da ist das sehr einfach da du deine gesamte Oberfläche in XAML definierst und deine Daten dann einfach bindest.

22.01.2010 - 01:00 Uhr

🤔 Hmm... wofür? Dass dürfte nicht funktionieren. Was meinst du denn mit WebMethod? Die Dinger von ASP.Net? Denen kannst du so weit ich weiss nur XmlSerialisierbare Sachen zum futtern geben. Das sollte aber ausreichen um daraus in deiner WebMethod einen Parameter zu bauen.

21.01.2010 - 18:48 Uhr

Warum nimmst du dann keine UserControls.

Aber geht doch:


         Form2 f2 = new Form2();
         f2.Dock = DockStyle.Fill;
         f2.TopLevel = false;

         Form3 f3 = new Form3();
         f3.Dock = DockStyle.Fill;
         f3.TopLevel = false;

         tableLayoutPanel1.Controls.Add(f2, 0, 0);
         tableLayoutPanel1.Controls.Add(f3, 1, 0);

         f2.Show();
         f3.Show();

20.01.2010 - 18:04 Uhr

wir haben zwar auch voll-gleitzeit (also ohne kernzeit)

8o "Auch unbedingt haben will!"
Dann wär mir auch Homeoffice wurscht. Manchmal wäre das o.k. aber ich könnte mich da nicht richtig konzentrieren.
Am besten arbeiten kann ich irgendwie entweder im Cafe oder in der S-Bahn oder irgendwo wo ich sonst wenig Ablenkung (klingt irgendwie komisch, ist aber so) habe das "gemurmel" vom Umfeld stört mich dabei nicht.
Aber das wäre wirklich eine Option: Ich arbeite nur noch von meinen Lieblingsläden aus 😉

20.01.2010 - 15:24 Uhr

ich würde gerne alles in einer setup.exe datei haben. keine externen dlls die mit übertragen werden müssen.

Das kannst du sowieso immer machen.

SSE = http://en.wikipedia.org/wiki/Streaming_SIMD_Extensions
PPC = http://en.wikipedia.org/wiki/PowerPC
oder anders ausgedrückt: SSE

Hat jemand ein Beispiel für C/C++ inline assembler code?

Dann würde ich sowieso erstmal die Finger davon lassen. Assembler ist ziemlich kompliziert. Wenn du keine speziellen Prozessorfeatures nutzen willst dann verstehe ich sowieso nicht warum du überhaupt Assembler benutzen willst.
Ansonsten: Inline Assembler mit C++

[EDIT] (Und für Setups gibt es im Visual Studio die sogenannten Setup/Deployment Projekte. In SharpDevelop wird das "Windows Installer XML" (WIX) verwendet.
Zu beiden Sachen gibt es bereits ausreichend Tutorials für die Grundlagen im Netz und die Themen wurden zum Teil auch hier im Forum schon behandelt.

20.01.2010 - 14:44 Uhr

Für solche Tasten muss man die ProcessCmdKey-Methode überschreiben.

20.01.2010 - 14:40 Uhr

Da ToString() überschreiben in dem Fall nicht drin ist wirst du dir wohl einen eigenen Editor dafür bauen müssen (oder Codeproject abklappern da das mit hoher wahrscheinlichkeit schon mal jemand gemacht hat).

Ansonsten: Implementing a UITypeEditor

[EDIT] Aber nur mit dem Array alleine wirst du trotzdem nicht zu dem gewünschten Ziel kommen da du den Editor ja als Attribut auf den Typen pflanzen musst. Also ist wahrscheinlich eher Array in eigenen *Editable-Typen verpacken angesagt.

20.01.2010 - 13:43 Uhr

ich möchte direkt meinetwegen auch ohne .net den asm code ausführen.

Also das einfachste wäre ja dann irgendwie doch C/C++ mit inline-Assembler.
Ich denke diser Blog-Post entstand irgendwie auch nur aus Gaudi. Einsetzen würde ich sowas nicht. Auch der Autor wollte damit wohl in erster Linie nur beweisen das es überhaupt geht:

I'm not sure how terribly useful this is, but it seemed cool to me. At the very minimum, it serves to tell people to STFU when they claim that C# / .NET can't do pointers, or raw code, or whatever.

Wozu willst du das überhaupt machen? Um SSE etc. zu nutzen? Dann doch lieber über eine native DLL, die kannst du dann auch wesentlich einfacher austauschen und verletzt nicht das Prinzip der Platformunabhängigkeit (theoretisch kannste das ja mit Mono auch auf nem PPC laufen lassen und dann ist dein x86 ASM nicht so toll).

20.01.2010 - 13:18 Uhr

Es würde dann immer noch über Named Pipes, Sockets, Windows Messages, Memory Mapped Files und sicherlich noch einigem mehr gehen. Ich weiß nicht was VB6 davon am besten unterstützt aber mit Named Pipes oder Messages sollte es in beiden Sprachen recht einfach möglich sein.

Ab .Net 3.5 oder war es doch schon 3 gibt es den System.IO.Pipes Namespace für solche Späße und in VB kannst du das Ding wahrscheinlich über die ganz normalen File-Operationen benutzen.

20.01.2010 - 12:40 Uhr

Eigentlich nicht obwohl ich irgendwo mal in einem Blog darüber gestolpert bin in dem das jemand "zusammengehackt" hat.
Ist ja kein Managed Code und kann deshalb nicht von .Net ausgeführt werden.

[EDIT] Ähm... ja hier: Assembler in C#

17.01.2010 - 16:06 Uhr

Wenns per JScript gemacht wurde dann gibt es wahrscheinlich irgendwo ein DIV-Element mit höherem Z-Index als die anderen Elemente welches du über das HTMLDocument finden und entfernen könntest.

15.01.2010 - 17:41 Uhr

@Siedlerchr
Wobei evtl. bestehende Encoding-Probleme genauso auftreten 😉

@Cheeesi
Wenn der Server mitspielt müsstest du deine encoding Infos eigentlich bekommen. (Content-Encoding HTTP header)

15.01.2010 - 16:35 Uhr

Steber! 😜

15.01.2010 - 16:31 Uhr

Wenn es nur ein paar Rects sind ist das Control sicher das einfachste, oder nicht?!?

Auf den ersten Blick mag das sein. Aber du wirst mit sehr hoher Wahrscheinlichkeit bald auf Probleme (Überdeckende Controls (beispielsweise beim verbinden), Transparenz, Performance usw..) stoßen wenn du das mit Controls machst. Die sind einfach nicht dafür gedacht.

Wie es im Tutorial beschrieben ist ist es schon richtig.

Wenn es sowieso nur klein sein soll dann nimm halt einfach was bestehendes: z.B.: Eigenes GraphicObject (jaensen's Grundgerüst) (musst a bissal zusammenkramen, war nicht wirklich als snippet oder Komponente gedacht) oder wenns "ein bisschen" mehr sein darf: ProFormX (ist wohl aber für ein paar Rechtecke zu groß 😉 grundsätzlich dürftest du mit ein bisschen Suche im Forum, Codeproject oder Codeplex noch viel mehr finden.

14.01.2010 - 17:32 Uhr

Das gesamte Ribbon lässt sich meines Wissens nach mit einem XML konfigurieren. Evtl. hilft dir dieser Artikel da weiter: Customizing the Outlook Ribbon

13.01.2010 - 15:11 Uhr

Anzahl aller Pixel = Breite * Höhe (Muss bei beiden Bildern natürlich gleich sein)
Beide Bilder Pixel für Pixel durchlaufen, jeden Pixel vergleichen (A,R,G,B), abweichungen zählen und dann ganz billige Prozentrechnung.

Das ist der billigste Ansatz, alles was darüber hinaus geht dürfte komplizierter werden (evtl. für JPEG Bilder noch eine Toleranz einbauen).

Für GetPixel/SetPixel operationen das Verwenden: GetPixel und SetPixel um Längen geschlagen. 800 mal schneller

11.01.2010 - 15:39 Uhr

Da ist doch eine Demo dabei. Codeplex = OpenSource
great maps demo application

09.01.2010 - 23:20 Uhr

Du musst IXmlSerializable implementieren 😉 ISerializable ist nur für Binary und SOAP-Formatter geeignet.

08.01.2010 - 06:11 Uhr

Für alle von euch die Joomla! einsetzen könnte folgendes interessant sein: Joomla! gehackt

Leider habe ich die Server logs noch nicht und somit ist es schwierig die Ursache auszumachen aber auf jeden Fall eine interessante Sache.