Laden...
Avatar #avatar-1724.gif
frisch myCSharp.de - Member
Fachinformatiker Anwendungsentwicklung Coburg / Oberfranken Dabei seit 18.08.2005 2.082 Beiträge
Benutzerbeschreibung
frisch durfte 2 Jahre lang auf eine Schule gehen und dort C und C++ lernen und dann musste er wieder von vorne anfangen... Meine Homepage ist in ASP.net programmiert. Einfach mal vorbeischauen. (Btw: Mir ist Funktionalität wichtiger als Design)

Forenbeiträge von frisch Ingesamt 2.082 Beiträge

26.05.2011 - 13:39 Uhr

OMG ich versuch schon die ganze Zeit einen Post zu machen und bekomm immer nen Fehler. Mit deinem Snippet klappts, danke. Werde den Code jetzt analysieren.

29.10.2010 - 13:44 Uhr

Hallo,

also ich habe ja vor kurzem was zum COM Interop gefragt, soweit funktioniert meine DLL auch sehr gut. Ich kann Methoden aus vbScript heraus aufrufen.

In meiner COM Dll habe ich 2 .net DLLs referenziert. Meine COM Dll soll ja eigentlich nur ein Wrapper für die Methoden zu den anderen DLLs sein. Wenn ich aber eine Methode aufrufe, die eine Schnittstelle (erstellt in der referenzierten DLL) zurück gibt, erhalte ich eine Fehlermeldung

Die Assembly "MyAssembly, Version=1.2.0.0, Culture=neutral, PublicKeyToken=ea89749a4160daca" kann nicht gefunden werden.

Der Stack Trace lautet wie folgt:

   bei System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo.GetAssembly()
   bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.GetType(BinaryAssemblyInfo assemblyInfo, String name)
   bei System.Runtime.Serialization.Formatters.Binary.BinaryConverter.TypeFromInfo(BinaryTypeEnum binaryTypeEnum, Object typeInformation, ObjectReader objectReader, BinaryAssemblyInfo assemblyInfo, InternalPrimitiveTypeE& primitiveTypeEnum, String& typeString, Type& type, Boolean& isVariant)
   bei System.Runtime.Serialization.Formatters.Binary.__BinaryParser.ReadArray(BinaryHeaderEnum binaryHeaderEnum)
   bei System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()
   bei System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCh

Wenn ich die COM DLL aus einer .net Anwendung Invoke, tritt kein Fehler auf. Ich habe auch schon versucht, die referenzierten DLLs in der Methode erstmal in die AppDomain zu laden aber ohne Erfolg.

Im Netz gibts auch keine Hilfe.

Hatte schon mal jemand dieses Problem?

25.10.2010 - 17:14 Uhr

eine COM-dll solltest Du ganz normal als Verweis referenzieren können, wie eine .NET-dll
Wenn Du das machst, kannst Du die COM-Dll von inem .NET-Projekt aus testen. Mit der Problematik, dass ich ja bei direkter Referenzierung frei nach Launer komplexe Datentypen zurückgeben kann, ich bei COM jedoch beschränkt bin bzw. das Marshalling explizit definieren muss.

Könnte also sein, dass ich eine DLL herausgebe, die bei mir zwar funktioniert, bei C++-Entwicklern allerdings nicht.

25.10.2010 - 16:57 Uhr

Hallo MarsStein,

habe ich gerade auch nachgelesen 😃

Warum COM?
Eine Partnerfirma, welche meine Schnittstelle nutzen möchte, entwickelt auf Navision und angeblich können die DLLs nicht direkt anbinden. (Habe selbst keine Erfahrung mit Navision)

Gibt es eine Möglichkeit, meine COM-Methoden zu testen? Bin leider nicht erfahren mit C++, sonst würde ich da die Aufrufe schreiben.

Wenn es keine andere Möglichkeit gibt, werde ich wohl nicht drum herum kommen, eine C++ Anwendung zum Testen zu schreiben.

25.10.2010 - 14:25 Uhr

Hallo,

ich habe eine IPC-Schnittstelle in mein Projekt eingebunden. Nun muss es auch möglich sein einige Funktionen der IPC-Schnittstelle mittels COM (DLLImport) anzusprechen. Den Wrapper habe ich soweit schon gebaut. Zum testen enthält die DLL ein Interface und eine Klasse, beides implementiert die Methode "Test" welche nur einen Boolean "true" zurück gibt. Die DLL ist als COM registriert, wenn ich aber versuche einen DLL Import zu machen, erhalte ich eine EntryPointNotFound-Exception.

Ich habe mir nun schon -zig Tutorials durchgelesen und meine Konfiguration überprüft, es hat jedoch leider nichts geholfen. Der Dependency-Walker macht mir auch ziemliche Probleme, dieser zeigt mir nämlich nichts an. Muss ich also davon ausgehen, dass die Methode nicht exportiert wird?

Hier mal der allgemeine Aufbau meines Projekts:

COM-Dll:

[Guid("6091A51C-F3A7-4b9f-AD5F-ACA89C77D905"),
    InterfaceType(ComInterfaceType.InterfaceIsIDispatch),
    ComVisible(true)]
    public interface IIpcWrapper {
        [DispId(1)]
        bool Test();
    }

[Guid("EF66017D-8A42-40ce-A372-A6740D55E9F2"),
    ClassInterface(ClassInterfaceType.None),
    ProgId("MyProgId"),
    ComVisible(true)]
    public class IpcWrapper : IIpcWrapper {
        public IpcWrapper() {
        }

        [DispId(1)]
        public bool Test() {
            return true;
        }
    }

Aufrufendes Programm:

public class ComCaller {
        [DllImport("MyDll.dll")]
        public static extern bool Test();

        public void DoSomething() {
            bool result;

            result = Test();
        }
    }
26.08.2010 - 16:48 Uhr

Hallo Loewchen0507,

die Fehlermeldung kenne ich aus einem Datenbanksystem welches wir verwenden. Versuch mal die Größe der Spalte zu erweitern (Also varchar(500) zu varchar(1000) oder smallint zu int)

30.07.2010 - 10:38 Uhr

Hallo,

Ich nehme an die Objekte werden aus einer Datenbank gelesen, wäre es nicht möglich dass die Anfrage einfach viel zu lang dauert und ein Timeout greift? Nein, das würde mir ja während des Debuggens auffallen 😃

Also habe das ganze aber mal Testweise in einen Stream serialisiert und mir dann das Xml als String zurückgegeben. Der String ist 7.370.043 Zeichen lang... Da bleibt mir wohl nur die Möglichkeit, das ganze irgendwie als Dateidownload bereit zu stellen und dann irgendwie in den Client zu deserialisieren.

//Nachtrag: Habe jetzt mal nen Stresstest gemacht und bin zu folgendem Ergebnis gekommen

Länge ok zum senden: 2885333
Länge nicht ok zum senden: 2888833

Ich schau mir nochmal meine Konfigurationsdateien an...

30.07.2010 - 10:21 Uhr

Hallo MarsStein,

  1. richtig, wenn ich z.B. nur 10 Objekte in die Collections einfüge tritt der Fehler nicht auf.
  2. die Exception sagt leider sehr wenig aus aber ich poste sie trotzdem mal:
System.Net.WebException wurde nicht von Benutzercode behandelt.
  Message="Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet getrennt.."
  Source="K3.Import"
  StackTrace:
       bei XXX_DoWork(Object sender, DoWorkEventArgs e) in XXX.cs:Zeile 174.
       bei System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
       bei System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)
  InnerException: 

Der Webservice selbst liefert keine Fehlermeldung beim debugging...

29.07.2010 - 18:06 Uhr

Hallo,

ich habe einen WebService erstellt. Dieser funktioniert soweit einwandfrei. Heute ist eine neue Methode hinzugekommen. Diese liest Objekte aus unserer Datenbank aus und gibt diese an eine Clientanwendung zurück. Das Zurückgegebene Objekt besteht aus 4 Listen, wobei Liste 1 eher eine Liste von einer komplexen Klasse ist. Liste 2-3 enthalten jeweils eine Klasse, die nur 2 int und 1 bool Property enthalten.

Jedoch kann die 4. Liste bis zu 50.000 Einträge besitzen. Ist dies der Fall, erhalte ich vom Client eine WebException:_ "Die zugrunde liegende Verbindung wurde geschlossen: Die Verbindung wurde unerwartet getrennt.."_

Habe im WebService in der Web.config die Werte meines HttpBindings raufgesetzt aber komme dennoch zu keinem Erfolg.

Muss ich etwa im Client selbst noch etwas einstellen, damit dieser so große Datenpakete vom WebService erhalten kann?

Der Fehler taucht übrigens während des Debuggens auf (Service und Client im Debug). Live will ich das so nicht testen.

Danke.

28.07.2010 - 11:11 Uhr

Hallo,

habe SC2 [UK-Import] vorbestellt und es wurde am Freitag losgeschickt. Ist bis heute leider noch nicht angekommen... 😦

Hätte mir vielleicht doch lieber die digitale Version zulegen sollen.

14.07.2010 - 11:00 Uhr

Ich kann dir ICSharpCode.SharZipLib empfehlen Kann das denn mittlerweile RAR-Dateien? Oder etwas schon immer? Wir setzen das nur für Zip ein.

14.07.2010 - 10:57 Uhr

Hallo,

hatte das neulich für eine meiner DBs gebraucht.

Hier das Script (SQL2005):

SELECT DISTINCT Tab.Name 
FROM sysindexes Ind
INNER JOIN sys.tables Tab
ON Ind.id = OBJECT_ID(Tab.Name)
--AND Ind.rows > 0
ORDER BY Tab.Name

Edit: "AND Ind.rows > 0" sorgt dafür, nur Tabellen mit Zeilen anzuzeigen.

14.07.2010 - 10:26 Uhr

Hallo Leute,

man kann sich das Leben auch schwer machen 😃 warum nicht einfach ein Panel in die Form legen, die alle Controls beinhaltet und nur dieses Panel disablen...

Man könnte sich auch eine CustomForm bauen die immer ein Panel beinhaltet.

13.07.2010 - 15:38 Uhr
13.07.2010 - 14:41 Uhr

Nutzt von euch jemand Last.fm?

103778 plays since 23 Jan 2007

Soviel dazu 😁

13.07.2010 - 10:23 Uhr

Hallo freak131,

mit cookieless auf false bekommst du Probleme bei Browsern, die keine cookies zulassen/unterstützen. Stelle das lieber auf AutoDetect.

05.07.2010 - 16:32 Uhr

Hallo TheGear,

Dock und Anchor haben hiermit garnichts zutun.

Die Eigenschaft MinimumSize könnte hier höchstens das Problem sein, kommt halt drauf an ob du die im Code änderst.

Passiert etwas bei dem Form_SizeChanged-Event?

02.07.2010 - 14:46 Uhr

Hallo cualalumpur und Willkommen,

dass der Hersteller dir keinen Support bietet ist schlecht. Wenn es aber eine Möglichkeit gibt, den Drucker via telnet oder ftp anzusteuern, kannst du ja einfach einen CMD Process starten und die Befehle an den Process geben und eben die Werte wieder auslesen.

Schau dir dazu einfach mal die Process-Klasse an.

01.07.2010 - 12:17 Uhr

Hallo,

Manchmal kommt es aber vor, dass man in einer File mehrere Methoden hat, die man gruppieren kann... aber wie trennt man jetzt solche Gruppen optisch von einander?

Schau dir mal

#region Irgendwas
#endregion Irgendwas

an.

Ich habe mir hierfür z.B. ein Snippet gemacht (Anhang) auf das du mittels reg zugreifen kannst

30.06.2010 - 16:44 Uhr

Hallo,

möglich wäre es doch auch, einen Event zu feuern, der ähnlich wie die KeyPress-Events eine Handled-Eigenschaft hat.

Beispiel (ist jetzt ungetestet aber ihr wisst schon worauf ich hinaus will):

MyFirstClass {
 public void Lock() {
  MyEventArgs args = new MyEventArgs();
  OnLock(this, args);
  if(!args.Handled){
   // Do Something
  }
 }
}

MyEventArgs {
 public bool Handled { get; set; }
}

MySecondClass : MyFirstClass {
 MySecondClass() : base() {
  base.Lock += new EventHandler<MyEventArgs(...);
 }

 private void BaseLock(object sender, MyEventArgs e){
  e.Handled = true;
  // Do Something
 }
}
22.06.2010 - 17:28 Uhr

Hallo 223,

unter VS2008 zumindest "Eigenschaften des Projekts öffnen" -> "Reiter Anwendung" -> "Zielframework"

Denke mal, das ist unter VS2010 nicht sonderlich anders.

18.06.2010 - 16:02 Uhr

Hi Jack,

naja, wir haben das Ding via Hinzufügen - Neues Element - DataSet erstellt (typisiertes DataSet eben). Haben darin allerdings Datenfelder mit eigenen Klassen (Enums) als Datentyp. Daran sollte es aber nicht liegen.

18.06.2010 - 11:41 Uhr

Hallo,

Problembeschreibung: In unserem Projekt sind DataSets unter Verwendung. Ich kann nach befüllen eines DataSets die Daten aber nicht einsehen. (Siehe Anlage)

Sonderfall: Das Verhalten tritt nur bei unserem großen Projekt auf. Bei kleineren Projekten mit nicht-typisierten DataSets/DataTables gibt es keinerlei Probleme.

Kennt jemand dieses Verhalten bzw. eine Möglichkeit, die Datensicht der DataSets zu reparieren?

17.06.2010 - 13:53 Uhr

Hallo inflames2k,

ja stimmt, bei einfachen Komplementärfarben ist das wohl so. Habe mich verwirren lassen weil ich zuerst an Farbharmonien gedacht habe sorry. Dazu gibts aber in den von mir geposteten Link unter "Color Harmonies" schöne Beispiele für die verschiedenen Farben. Falls es dir um Design geht kannst du dir das ja mal anschauen.

17.06.2010 - 13:35 Uhr

@Lector: Ganz so einfach ist das nicht. Invertierte Farbe != Komplementärfarbe. Zu Komplementärfarben gibt es auf Photoshop Turoials einen guten Beitrag: Simple Practical Color Theory

15.06.2010 - 12:02 Uhr

Hallo Meinerses,

sind die Positionen / Größen der Panels auch unterschiedlich?

parray[i].Controls.Add(label);
parray[i].Controls.Add(textbox);
parray[i].Controls.Add(label);

Fügt das gleiche Label 2 mal hinzu, d.h. es wird sich nichts ändern. Du müsstest das zweite Label erst neu instanziieren.

Beachte zusätzlich: [Hinweis] Wie poste ich richtig? Punkt 6

14.06.2010 - 17:25 Uhr

@MrSparkle: Ganz so einfach ist es nun nicht. Du fängst an im Roten Grad. Wenn du alle Konventionen vom Roten grad 21 Arbeitstage lang einhälst ohne das Band einmal wechseln zu müssen, dann kannst du in den nächsten Grad (Orange) wechseln. Im Orangen grad musst du dann die Konventionen vom Roten und Orangen Grad einhalten. Das geht dann immer weiter bis zum letzten Grad.

Wann wechselst du das Band?
Wenn du bemerkst, dass du eine Konvention nicht eingehalten hast, wechselst du das Band bzw. das Band wechselt einfach den Arm (z.B. vom linken auf den rechten Arm).

Kannst du alles hier nachlesen.

14.06.2010 - 15:38 Uhr

Hallo,

peinlich, ich glaube von CCD schon mal gehört zu haben, weiß aber nicht mehr wo. Habe jetzt mal einen Blick auf die Page riskiert und es hört sich doch sehr interessant an. Werde mir die Regeln soweit mal ausdrucken und in aller Ruhe durchlesen und gleichzeitig das schwarze Band bestellen 😉

Danke für den Post.

Wäre es vielleicht eine gute Idee für CCD auf der Startseite zu werben?

11.06.2010 - 11:07 Uhr

Hallo ambientCS,

aus meiner Sicht sollte das Model nichts berechnen. Das Model enthält nur die Daten.

Bei uns ist das so: Du klickst auf einen Button. Es wird eine Methode im Controller aufgerufen. Der Holt die spezifischen Models und bestückt dies mit Daten. Das Model hat dann z.B. die Eigenschaft Price, Amount und Total. Der Controller schreibt in Total dann Price * Amount und gibt dann den View zurück.

09.06.2010 - 15:01 Uhr

Hallo,

den Beitrag findest du hier: [FAQ] Warum blockiert mein GUI?

09.06.2010 - 15:00 Uhr

Hallo scrabbl,

benutze lieber this.Close();

Zu deinem Fehler: Könnte sein, dass die Elemente schon disposed sind bzw. dass du auf eine Liste/Collection zugreifst, die disposed wird.

02.06.2010 - 13:38 Uhr

Hallo Maddinel,

zu 3.: Explorer als Admin gestartet? [Crtl+Shift+Click] auf Explorer Fenster in der Taskbar (zumindest unter Win7) evtl. musst du vielleicht auch noch Ownership des Ordners übernehmen.

01.06.2010 - 15:04 Uhr

Hallo Mavster,

das sind ja Grundlegende Dinge.

  1. RichtTextBox braucht es nicht, normale TextBox mit Multiline reicht und einem Split auf Enviroment.NewLine
  2. Directory.GetFiles liefert alles nötige um die Dateien zu ermitteln

Anmerkung: Weiß jetzt nicht im Kopf ob der Rechnername/IP reicht um die Freigaben zu loopen. Ggf. musst du die noch je Rechner rausfinden oder du gibst direkt den Pfad zur Freigabe an.

01.06.2010 - 14:38 Uhr

Hallo j4n,

aktualisierst du denn den Pfad auch nach dem Drop-Vorgang?

01.06.2010 - 12:18 Uhr

Hallo und willkommen im Forum,

ich würde IPC verwenden. Im Channel kannst du alles übermitteln was serialisierbar ist. Das Forum dürfte zu dem Thema genug Beispiele bringen.

31.05.2010 - 16:45 Uhr

Oh man, sorry ich habs nicht getestet und gleich gepost und da habe ich ausversehen nur die Formatierung geschrieben...

natürlich muss das so lauten:

string.Format(System.Globalization.CultureInfo.InvariantCulture, "{0:#,##0.#}", darrSummenZeile[z]);
31.05.2010 - 16:05 Uhr

Hallo timmi,

wow, ich hoffe du weißt wozu string.Format da ist denn die Zeile

  rowSum[z + 1] = String.Format(CultureInfo.InvariantCulture.NumberFormat,"{0:f1}", darrSummenZeile[z].ToString(ci.NumberFormat));

ist schon ziemlich komisch...

probier doch mal

string.Format(System.Globalization.CultureInfo.InvariantCulture, "#,##0.#", darrSummenZeile[z]);
31.05.2010 - 15:56 Uhr

Hallo aerodur,

bei FileInfo gibts ja dann die Property Exists mit der du prüfen kannst. Wie performant FileInfo allerdings bei nicht existierenden Dateien gegenüber File.Exists ist, weiß ich nicht. Ich würde trotzdem lieber File.Exists und die Path-Klasse verwenden wenn du nicht irgendwo auf die Attribute der Datei zugreifen musst.

31.05.2010 - 15:00 Uhr

Heaven Shall Burn - Iconoclast

wunderbar harte Sounds aus Deutschland. Bin bei denen am Samstag auf dem Konzert bei Rock im Park 😁 wird gut werden.

31.05.2010 - 14:58 Uhr

nur für eine bestimmte zeit, wobei man da dann einfach nach ablauf der zeit mal keinen wind amcht und meistens lassen die einen schon in ruhe wenn man ein gewisses alter überschritten hat 😉
So scheint es bei mir gerade zu sein 😃
April 2009 hätte ich eingezogen werden soll. Durch die Unabkömmlichkeitserklärung wurde ich um ein Jahr zurückgestellt, hab bis heute aber (noch) nichts weiteres gehört.
Ich schein mit 23½ wohl nicht mehr so interessant zu sein. Haha, gleiches Spiel bei mir. 2008 bei der Musterung und die haben dann gesagt, die melden sich nach meiner Ausbildung (also etwa Juli 2009). Habe bis heute noch nichts mehr von denen gehört und werde demnächst 25.

31.05.2010 - 14:53 Uhr

Hallo chip777,

habe Zuhause das gleiche Problem. Wenn ich die Kopfhörer verwenden will muss ich immer erst in die Settings was sehr mühselig ist.

Probier mal folgendes Programm: Coastal Audio Changer

Nicht getestet aber im Video sieht das Programm echt gut aus.

Ansonsten:
Quick Sound Switch
Diverse

26.05.2010 - 15:52 Uhr

Hallo Belzaharas,

probiers mal mit einem Select Top 1 * From Blabla um zu sehen, ob denn überhaupt Daten zurückgeliefert werden. Wenn ja, bleibt wohl nichts anderes als entweder einen DataReader zu verwenden oder den Timeout noch weiter hochzuschrauben.

26.05.2010 - 14:27 Uhr

Hallo Belzaharas,

im SQL Management Studio hast du für gewöhnlich die Verbindung schon offen. Mittels SqlConnection baut sich diese aber erst auf. Setze mal vor conn.Open den conn.ConnectionTimeout hochzusetzen und schau, was passiert.

26.05.2010 - 12:52 Uhr

Hallo,

intern machen wir das so, dass wir ein ReportProgress nur alle X Millisekunden zulassen (für gewöhnlich 500).

DateTime lastReport = DateTime.Min;
//Do some loop
if((DateTime.Now - lastReport).TotalMilliseconds >= 500)){
  lastReport = DateTime.Now;
  //ReportProgress
}
//End Do some loop

Im RunWorkerCompleted die ProgressBar.Value übrigens auf 100 setzen sofern nicht abgebrochen wurde.

25.05.2010 - 14:45 Uhr

Hallo,

ich empfehle sowieso keine hardcodierten Zeichen zu verwenden.

Versuchs doch mal so

string singleLineException = exception.Replace(System.Enviroment.NewLine, string.Empty);

Und schau was passiert.

Im Notfall noch

while(singleLineException.Contains(System.Enviroment.NewLine))
   singleLineException = singleLineException.Replace(System.Enviroment.NewLine, string.Empty);

Kann mir aber gerade nicht erklären, warum das notwendig sein sollte...

21.05.2010 - 11:34 Uhr

Hallo inflames2k,

auf das KeyDown-Event in deiner Form reagieren und in der Methode e.Handled = true setzen.

21.05.2010 - 10:03 Uhr

Hallo C-Sharpler9019,

mich interessiert dieses Thema auch aber man kommt wohl leider nicht daran vorbei einen eigenen Netzwerktreiber schreiben zu müssen.

http://stackoverflow.com/questions/438240/monitor-a-processs-network-usage

//Edit: Habe noch ein paar hilfreiche Posts gefunden. WinPcap bietet wohl eine API.

SharpPcap - A Packet Capture Framework for .NET

21.05.2010 - 09:37 Uhr

Hallo math55,

Kurz:
Composite Control ist eine Zusammenfassung mehrerer Controls. Das Composite Control reagiert auch auf Events der enthaltenen Controls und kann Properties der enthaltenen Controls nach aussen weitergeben.

Vom Web Control werden alle Controls abgeleitet, die unter ASP.net verwendet werden. Quasi das Gegenstück zum Control aus der Windows Forms Welt

Das User Control ist ein leeres Control in dem du dann bei 0 anfängst.

Ausführlich:

CompositeControls

A composite control renders a user interface that reuses the functionality of existing controls. A composite control can synthesize properties from the properties of its child controls and handle events raised by its child controls. It can also expose custom properties and events.

WebControl

Serves as the base class that defines the methods, properties and events common to all controls in the System.Web.UI.WebControls namespace

UserControl

Provides an empty control that can be used to create other controls.

CustomControl

Hoffe das hilft dir erstmal weiter.

20.05.2010 - 18:08 Uhr

Hallo,

also wir machen hier das Gleiche mittels HttpHandler. Bei uns ist der Verwendungszweck der, dass wir Dateien mit einem eindeutigen GUID als Namen abspeichern. Originalname ist in der DB. Unser Handler ruft den Originalnamen aus der DB ab und liest den Content aus der Datei. Schreibt dann den Content unter Originalnamen in den Context.

Es geht also mit der Variante von gfoidls Post. Evtl. setzt du den Handler falsch ein oder hast diesen falsch konfiguriert. Les dir den Beitrag aus dem Post doch mal genau durch.