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 trib
Thema: Daten von Com-Port lesen, bis bestimmte Zeichenfolge gefunden wurde [oder Timeout eintritt]
Am im Forum: Rund um die Programmierung

Hallo tipikosch,

die Herangehensweise ist leider grundlegend falsch.
Das OnDataReceived-Event wird aufgerufen, wenn der COM-Port Controller der Meinung ist, die Werte durchzuschleusen. Das hat zum Einen mit der Einrichtung zu tun, zum Anderen wie sehr der Com-Port "gefordert" wird (Cache, usw.).
Soll heißen: Es kann man sein dass die Antwort nur aus einzelnen oder wenigen Zeichen besteht, mal aus dem gesamten Datenfluss bis zum Zeilenumbruch.

Nun erwartest du "Job finished". Das Event wird aufgerufen und liefert "Job" zurück. Die Schleife wird also endlos laufen (Bis die Stopwatch funktioniert).
Beim nächsten Mal gibt es vielleicht sogar nur "J" zurück...

Ich denke, Du verstehst das Problem :)

Lege eine globale Variable an, der du alle eingehenden Nachrichten aus dem Event per += zuweist und vergleiche das mit deinem searchString.
Dann würde ich einen Timer statt der Stoppwatch verwenden, damit nach dessen Ablauf ebenfalls ein Event aufgerufen wird. Darin beendest Du dann den ComPort, sofern nicht vorher schon ein korrektes Ergebnis eingegangen ist.

Thema: WinCE Installationspaket unter Win8 - "Section [RegKeys] has no data"
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Guten Tag zusammen,

ich habe oben genanntes Problem weiter analysiert. Die Problematik mit dem RegKey ist dabei auch nicht der springende Punkt. Es handelt sich schließlich nur um eine Warnung, die man z.B. durch Anlegen eines Leeren Keys oder das entfernen in der Inf-Datei, die im Debug oder Release Ordner des Setups liegt, beheben kann.

Aber: Nachdem das Projekt erstellt wurde und der Installer die *.inf Datei für das Installationspaket abgelegt hat, wird außerhalb von VS diese an das Programm "cabwiz.exe" in den SDK-Tools übergeben.
Da mein Benutzerverzeichnis auf D: liegt, habe ich dort den Fehler vermutet. Also alles nach C:\Temp kopiert und die cabwiz.exe über die Konsole manuell ausgeführt. Weiter ohne Ergebnis.

Meine Lösung ist nun ein Windows7 VPC mit selbiger Installation. Dort funktioniert es auf Anhieb.
Unschön, aber imho nicht anders zu lösen.

Gruß
trib

Thema: IE 9 verweigert NTLM Authentifizierung (Firefox kein Problem)
Am im Forum: Smalltalk

Alternative:
Internet Explorer als Administrator starten. Macht unter Win8 zumindest einen großen Unterschied.

Als Beispiel kann ich da den SQL Report Server nennen. Hat man Administratoren-Berechtigungen dem Windows-User zugewiesen, kann man diese nur ausüben, wenn auch der IE als Admin gestartet wurde.
So fallen sonst manche Funktionen einfach weg oder Ordner verschwinden.

Thema: DGV Performance erhöhen - Anzeige von sich schnelländernden Daten
Am im Forum: GUI: Windows-Forms

Hallo planetberlin,

wenn Du eine Tabelle auf eine Tafel zeichnest und alle Werte immer wieder wegwischst und mit der Kreide neu aufmalst, kostet das Zeit. Viel Zeit.
Nun hast Du den Fall konstruiert, für 100 Zeilen die Werte zu ändern, obwohl Du nur ca. 8 Stück siehst. Je mehr Zeilen, je länger dauert das. An sich logisch :)

Um das zu umgehen, bietet das DataGridView ein Databinding. Das ist sogar so schlau, nur die Bereiche neu zuzeichnen, die auch angezeigt werden.

Also bau Dir eine Liste, die die X & Y speichert und verändere auch nur diese Liste. Die bindest Du dann an das DGV und die Performance sollte sich deutlich verbessern.

Gruß
trib

Thema: Session ID über eine Tabelle abfragen
Am im Forum: Datentechnologien

Hallo reiter08,

wenn ich das auf den ersten Blick richtig sehen, hat Dein Professor im Storedprocedure eine Spalte in der Tabelle angelegt die "UID" heißt. Du hast aber eine Spalte angelegt, die "ID" heißt.

Gruß,
trib

Thema: SerialPort schickt beim Öffnen Daten zum µC
Am im Forum: Rund um die Programmierung

Hmm, komisch.
Was ich etwas anders mache ist das auslesen im Event. Da spare ich mir Buffer, Offset & Größe mitzugeben, sondern lese immer alles mit:

        void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {                      
               string input = comPort.ReadExisting();
        }
Vielleicht hast Du noch irgendwelche "Leichen" im SerialPort-Controller, die du mit ausliest.

Thema: SerialPort schickt beim Öffnen Daten zum µC
Am im Forum: Rund um die Programmierung

Funktioniert denn die anschließende Übertragung problemlos?
Also kommen gesendete Zeichen und/oder Zeichenketten so zurück wie Du sie sendest? Sonst sorgt vielleicht eine falsche Parität o.ä. für das Verhalten.

Um ganz sicher zu gehen woher welche Daten kommen, verwende ich gerne den Free Serial Port Monitor. Der hat mir häufig beim Trouble-Shooting geholfen.

Wie sprichst Du den Port denn an? Verwendest Du eine fertige Library, liest Du die Zeichen einzeln aus oder nutzt du das Received-Event?

Thema: SerialPort schickt beim Öffnen Daten zum µC
Am im Forum: Rund um die Programmierung

Zitat von Mettwurstfan
Habt ihr eine Idee, was da los ist? Ist das ein normales Protokoll?

Hallo Mettwurstfan,

das ist gut möglich. Es gibt eine Fanstastillion Kombinationen der Konfigurationen der Seriellen Schnittstelle.
Der Handshake wäre z.B. ein möglicher Verursacher.
Bist Du denn sicher, dass der µC nicht Daten sendet, die Dein Programm nur quittiert?

Gruß,
trib

Thema: Navision RDLC Reports (NAV 2013) - Alternativen?
Am im Forum: Rund um die Programmierung

Hallo Sebi,

hattest Du nicht ohnehin von NAV 2013 gesprochen? Ab 2009 gibt es für alle Berichte die Funktionen: SaveAsPDF, SaveAsWord, SaveAsXML & SaveAsExcel (HTML gibt es auch, klappt aber imho erst ab 2013).
Alternativ wird auch gerne der SQL-ReportingServer verwendet. Der ist beim SQL-Server inklusive, sofern bei der Installation Business Intelligence angehakt wurde. Der kann die ganzen Exporte ebenfalls. Sogar per Zeitlich steuerbarem Abonnement. Das geht allerdings an der NAV Businesslogik vorbei. Ist aber nicht an die NAV-Version gebunden.

Gruß,
trib

Thema: Barcode (in Liste) in Report darstellen
Am im Forum: Rund um die Programmierung

Hallo Flock23,

anbei meine Lösung, die aus der CodeProject-Lösung und einer speziellen ListView besteht.
Projektmappe einmal "Neu erstellen", da ich aus Platzgründen die Debug/Release Ordner leergeputzt habe :)
Welches Reporting-Tool du verwenden sollst, kann ich Dir nicht so recht beantworten. Das ist halt Glaubensfrage, bzw. eine Frage der bereits installierten Komponenten.
Für meinen Teil verwende ich gerne SQL-Reporting. Dort kann man auch die Datasource mit einer DotNet-Quelle füttern.

Gruß
trib

Thema: Barcode (in Liste) in Report darstellen
Am im Forum: Rund um die Programmierung

Hallo Flock23,

es gibt eine hervorragende Barcode Library auf Codeplex.
Mit dieser kannst Du ganz einfach aus den Nummern ein Bild des entsprechenden Barcodes generieren.
Entweder übergibst Du diese Bilder dann an die entsprechende Report-Engine oder alternativ zeichnest Du direkt auf dem PrintDocument, wenn es Dir nur um das reine ausdrucken geht.
Bei Interesse hätte ich genau so etwas gerade fertig hier herumliegen :)

Gruß
trib

Thema: Wie über Bluetooth verschickte Text anzeigen lassen?
Am im Forum: Netzwerktechnologien

Guten Morgen,

analog zu den klassischen USB-Scannern, wird das Blutooth-Pendant ebenfalls als Tastatureingabe fungieren.
Dementsprechend kommt der Text an, also wäre der Barcode-Scaner eine handelsübliche Tastatur. Aber mit jemandem, der sehr schnell tippen kann :)
Dazu gibt es schon zahlreiche Threads, worin erklärt wird, woran man bei der Eingabe Mensch und Maschine unterscheiden kann.
iMessageFilter zur Unterscheidung von USB Scanner und Tastatur
Barcodescanner- & Tastatureingaben unterscheiden


Gruß,
trib

EDIT: Links angefügt.

Thema: Bild von IP-Cam direkt in PictureBox anzeigen lassen
Am im Forum: Grafik und Sound

So ist es. Also entweder den Code nach dem Bild durchsuchen oder alternativ ein Webcontrol statt der Picturebox verwenden.
Irgendwo müsste ich aber auch noch einen Code zum runterladen des Bildes rumliegen haben...

Thema: Navision RDLC Reports (NAV 2013) - Alternativen?
Am im Forum: Rund um die Programmierung

Zitat von wakestar
Es freut mich zu hören, dass Du das Ganze nicht so problematisch siehst.

Wie bei allen Neuerungen, gibt es nicht nur Vorteile, das ist vollkommen klar!
Trotzdem sollte man sich ihnen nicht verschließen, sondern stellen :)

Die Aussage im ersten Link ist korrekt, aber auch nicht sonderlich überraschend. Im Header und Footer kann man keine Daten aus dem Dataset hinterlegen. Das ist ein normales Verhalten, was auch in anderen Reporting Tools so ist. Allerdings gibt es zwei Workarounds, die das Ermöglichen.

Das Verhalten aus dem 2. Link kenne ich ehrlich gesagt nicht.

Die Geschichte mit dem "Datenvolumen" hängt natürlich unmittelbar damit zusammen, dass die Technologie von der nativen Datenbank auf SQL-only umgestellt wurde. Daher ist nun auch eine komplett neue Reporting Engine eingeführt worden, die auch ihre Eigenheiten besitzt. Für jeden, der mit SQL-Reporting gearbeitet hat, ist das ein stinknormales Verhalten, was der Entwickler einfach beachten muss :)

Thema: Navision RDLC Reports (NAV 2013) - Alternativen?
Am im Forum: Rund um die Programmierung

Hallo wakestar,

weshalb ist das RDLC Reporting für Belege eine Krücke?
Das Ganze würde ich andersherum sehen. Die Engine hat dank der Ausführung der Datasource auf dem ServiceTier und der Renderung auf dem Client ein gewisses Bottleneck. Aber das ist schon ziemlich reduziert, seit rdlc in NAV im Einsatz ist.
Listen und Auswertungen mit einem sehr großen Datenvolumen können länger dauern als mit anderen Reporting-Tools. Bei Belegen, die ja i.d.R. aus einer Handvoll Seiten bestehen, kann ich das nicht sonderlich nachvollziehen.

Die Erstellung ist natürlich auf den ersten Blick etwas komplexer geworden. Aber man arbeitet sich schnell ein. Ist ja bis auf die DataSource identisch mit RDL.

Als Word, Excel und PDF lassen die Berichte sich ebenfalls speichern.

Thema: iMessageFilter zur Unterscheidung von USB Scanner und Tastatur
Am im Forum: GUI: Windows-Forms

Hallo Fabian,

was bitte ist der iMessageFilter?
Soweit mir bekannt, funktionieren die allermeisten Scanner per USB wie eine Tastatur. Demnach kann man die Tastatureingabe genauso auslesen wie die des normalen Keyboards.
Ein Ansatz wäre daher, die Zeit der Eingabe bis zum mitsenden des abschließenden "Return" zu messen. Der Scanner macht das innerhalb von Millisekunden. Ein Mensch an der Tastatur benötigt natürlich deutlich länger.
Eine andere Alternative ist die Konfiguration des Scanners. Die meisten Modelle bieten eine Konfiguration mit Start- und Endzeichen an. Dann wird z.B. ein STX und ein ETX mitgesendet. So ist es natürlich ein einfaches die Eingaben von Tastatur und Scanner zu unterscheiden.

Gruß
trib

Thema: Best Practice: Verwendung & Benennung von abgeleiteten Listen
Am im Forum: Rund um die Programmierung

Guten Tag zusammen,

ich habe ein kleines Problem, welches mich schon länger stört.

Nehmen wir an, ich habe meine Klasse Car:

    public class Car
    {
        private string _name = string.Empty;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
    }
Dann kann man sich hervorragend eine Liste Bauen und auch sehr elegant verwenden:

    public class CarList: List<Car>
    {
        
    }
Verwendung:

            CarList carList = new CarList();
            carList.Add(new Car());
            int i = carList.Count;

Nun möchte ich aber z.B. gerne von einer Basisklasse zum XML-Serialisieren ableiten.
Also muss ich die Klasse wie folgt ändern:

    public class Cars : DataSerializer<Cars>
    {
        private List<Car> _items = new List<Car>();
        public List<Car> Items
        {
            get { return _items; }
            set { _items = value; }
        }
    }
Nun muss ich aber in der Programmierung jedes mal über "Items" gehen:

            Cars cars = new Cars();
            cars.Items.Add(new Car());
            int i = cars.Items.Count;
Finde ich nicht so sonderlich schön. Abgesehen davon, dass alle Listen Elemente, gleich welchen Typs immer "Items" heißen.
Geht das irgendwie etwas schöner/kürzer?

Thema: ModernView 1.1 - Ein OpenGL-Bildbetrachter
Am im Forum: Projekte

Hallo nop,

ein super Programm!
Habe es gerade unter Win8 64bit getestet. Grafikkarte ist eine NVIDIA Quadro2000M.
Läuft problemlos und sehr flüssig. Auch die Leisten werden im Vollbild ordnungsgemäß eingeblendet.

Gruß,
trib

Thema: Android oder WP? Was ist bei der Wahl der Plattform zu beachten?
Am im Forum: Smalltalk

Hallo zusammen,

als Nachteil von WP8 (habe ein Lumia 920) sehe ich noch:
Fehlende Ordner-Integration in Exchange. In meinen Kontakten habe ich z.B. einen Ordner "Kunden", der nicht synchronisiert wird. Es bleibt einzig und allein, diese Kontakte in den Haupt-Ordner zu verschieben und sich auf dem Telefon eine Gruppe manuell anzulegen.
Mehr oder weniger Zwang vom XBOX-Live Account. (Der einmal angelegt sich nicht mehr ändern lässt)
Nur einen Homescreen. Natürlich sind die Tiles schick und funktional. Aber bei vielen Apps würde ich mir Ordner zur eingruppierung o.Ä. wünschen.
Die Widgets bei Android haben auch ihren eigenen Charm.
Man benötigt immer einen Fingertipp mehr als bei Android oder iOS. Um Anrufe anzunehmen muss man erst wischen und dann nochmal tippen. Im Telefonbuch wische ich erst von den Favoriten zu allen Kontakten, dann tippe ich auf den Buchstaben (cooles Feature) suche mir dann den korrekten Buchstaben heraus, scrolle zum Kontakt, wähle diesen aus und tippe dann auf die entsprechende Nummer.

Apps dürfen keine Einstellungen vornehmen. Von Android bekannt, kann ich Zeit-, GPS, oder Sendemastgesteuert mein WLAN aktivieren oder das Telefon auf lautlos stellen. Diese Berechtigung gibt es nicht (mehr).

Grundsätzlich bin ich aber sehr zufrieden mit dem Telefon und würde es für den Firmengebrauch absolut weiterempfehlen. Gerade dass alle Apps (auch von Fremdanbietern) dem Designkonzept folgen ist klasse.
Privat bleibe ich aber bei meinem Android. Es ist zwar minimal langsamer (Android 4.1.1 - 1,5Ghz Dualcore) aber dafür kann ich alles konfigurieren und schick machen :)

Thema: WinCE Installationspaket unter Win8 - "Section [RegKeys] has no data"
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Guten Morgen zusammen,

ich habe vor einiger Zeit auf Windows 8 gewechselt und nach einiger Zeit auch alles lauffähig eingerichtet. (Registry-Eintrag damit VS immer als Admin startet, usw.)

Nun möchte ich ein unter Win7 funktionstüchtiges Visual Studio 2008 Projekt neu erstellen.
Es handelt sich dabei um eine CE 6.0 Anwendung, die auf einem MDE laufen soll.
Dort ist ein Installationspaket enthalten, welches folgenden Fehler schmeißt:

Fehler
Fehler beim CAB-Assistenten von Windows CE. Weitere Informationen finden Sie im Ausgabefenster.

Das Ausgabefenster liefert dann folgendes:
Fehler
ÿWarning: Section [RegKeys] has no data
Warning: Section [DefaultInstall] key "AddReg" - there are no section entries to process
Error: CAB file "C:\Kunden\MDE Solution 1.0.0\Release\MDE Solution.CAB" could not be created
  • Die Meldung tritt bei jedem CE Installationspaket auf
  • Es gibt keine Registry-Einträge oder Ähnliches in dem Installer
  • Neu erstelltes Projekt mit Installationspaket liefert den selbigen Fehler
  • Hinzufügen eines Registry-Eintrages ändert auch nichts

Jegliche Suchanfragen liefern dasselbe Ergebnis. "Ignorieren Sie einfach diese Warnung". Nur dass es sich bei mir um einen Fehler und keine Warnung handelt und das Paket nicht erstellt wird.
Ein weiterer Vorschlag war, den Inhalt im Debug/Release-Ordner zu löschen (CabWiz.log & MDE Solution.inf). Diese änderte aber ebenfalls nichts am Ergebnis.

Hatte jemand ein ähnliches Problem oder eine Idee was diese Meldung verursachen könnte?

Thema: gut sortierbare Liste von Panels
Am im Forum: GUI: Windows-Forms

Guten Morgen H2SO4,

was stellst Du denn mit den Panels an? Mehr als 300 sind natürlich schon eine Menge. Wenn diese nicht so kompliziert aussehen, empfiehlt es sich in jedem Fall 300 Rectangles selbst zu zeichnen und im OnPaint der Form die sich ändernden Bereiche neu zu zeichnen.
Dazu sollte man, genau so wie Du es schon mit der Liste machst, die Grafik-Objekte in einer Liste vorhalten.
Hier hat herbivore das excellent beschrieben: [Tutorial] Zeichnen in Windows-Forms-Programmen (Paint/OnPaint, PictureBox)

Thema: Cloud-Speicher? Skydrive, Dropbox, Google Drive & Co - Wer nutzt was?
Am im Forum: Smalltalk

Zitat von Tomot
Ich habe nun zu Skydrive gewechselt und bin sehr zufrieden.

Hi Tomot,

falls Du Windows 7/8 nutzt, kannst Du den SkyDrive auch einfach verschlüsseln, wenn Du das möchtest:
BoxCryptor (kostenlos).
Apps für iOS, Android & Mac OS X gibt es ebenfalls.

Gruß,
trib

Thema: UserControl mit DependencyProperty mehrfach verwenden
Am im Forum: GUI: WPF und XAML

Hallo Christian,

vielen dank für die schnelle Antwort!
Aus den Tutorials hatte ich natürlich das static übernommen. Aber aufgrund des o.g. Fehlers testweise mal herausgenommen. Daher auch das [EDIT].
Kaum wieder einprogrammiert und es funktioniert alles wie gewünscht!
Vielen Dank! Da habe ich vor lauter Testen und probieren den Wald vor lauter Bäumen nicht gesehen :)

Gruß,
trib

Thema: UserControl mit DependencyProperty mehrfach verwenden
Am im Forum: GUI: WPF und XAML

Guten Tag zusammen,

vor einiger Zeit habe ich mich an WPF gewagt und nach einige anfänglichen Schwierigkeiten, läuft es auch ganz gut. Bis jetzt
Es ist eine Sache Controls mit DataBinding zu verwenden und eine andere, diese selbst zu erstellen.

Ziel:
Mein UserControl soll einen Button mit OpenFileDialog darstellen. Dieser soll anzeigen ob die Datei vorhanden ist und/oder sich öffnen lässt.

Step 1:
Die Umsetzung des Buttons mit interaktiver Border-Farbe und OpenFile-Dialog war natürlich kein Problem.

Step 2:
String-Property erstellen und im Setter prüfen ob die Datei existiert. => Funktioniert natürlich nicht, da keine INotify-Funktionalitäte o.ä. implementiert wurde

Step 3:
Nach etwas Recherche dann DependencyProperty implementiert, um die Änderung an dem Wert mitzubekommen.

public string Text
        {
            get
            {
                return (string)GetValue(TextProperty);
            }
            set { SetValue(TextProperty, value);
                CheckFileExists();
            }
        }

        public static readonly DependencyProperty TextProperty =
          DependencyProperty.Register("Text", typeof(string), typeof(BrowserDialog), new FrameworkPropertyMetadata("", FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, TextValueChanged));

private static void TextValueChanged(DependencyObject o, DependencyPropertyChangedEventArgs e)
    {
      var sender = o as BrowserDialog;
        if (e.NewValue != null)
            sender.Text = e.NewValue.ToString();
    }
Das erscheint mich zwar nicht sonderlich elegant, aber ich habe es so in etlichen Tutorials gesehen und übernommen.
Beispiel Tut 1
Beispiel Tut 2

Funktioniert!
Nun ändert sich die Farbe unmittelbar bei Änderung des Dateipfades. Auch die Rückgabe nach dem Datei-Dialog funktioniert.

Problem:
Füge ich nun noch ein UserControl von meinem Typ ein, so kommt die Meldung:
Fehler	1	"Text"-Eigenschaft wurde bereits von "BrowserDialog" registriert.	
Das ist natürlich klar, aufgrund der static Variablen & des Events . Aber wie löse ich es sonst?

Es kann doch eigentlich nicht so kompliziert sein, ein DataBinding zu implementieren und dynamisch auf dessen Änderungen zu reagieren.
So langsam habe ich das Gefühl, ich bin vollkommen auf dem Holzweg und verrenne mich da in den DependencyProperties und es gibt etwas viel einfacheres X(

Für jeden Schubs in die richtige Richtung wäre ich sehr dankbar!

[EDIT] ein static vergessen

Thema: Datensätzte nur in einem Datums bereich anzeigen
Am im Forum: Datentechnologien

Zitat von Cokie
So Kunde A möchte gerne am 2.6.2013 das Nokia leihen. Heist ich schreib in denn leihauftrag in Spalte "Verliehenam" 2.6.2013 und die Spalte "zurückam" bleibt Null.
Jetzt möchte Kunde B das Nokia am 23.5.2013 Leihen. Das ist möglich weil das Nokia erst am 2.6 an Kunden A Verliehen wird. Das heist das Nokia muss bis zum 2.6 Sichtbar sein. Damit ich Kunden B das Nokia auch verleihen kann (Vorrausetztung ist natrülich das Kunde B am 1.6. das Nokia wieder zurückbringt).

Und da hab ich das Problem ich bekomm das nicht hin das wenn der Auftrag drin steht das Gerät in dem Zeitraum sichtbar bleibt bis das Gerät tatsächlich Verliehen ist.

Hi Cokie,

das löse ich eigentlich immer dadurch, dass ich das Feld mit dem Enddatum durch das Tagesdatum fülle, sofern dies leer ist.
Also:
WHERE ISNULL(la.zurückam,GETDATE()) < GETDATE()
Egal an welchem Tag das Statement ausgeführt wird, das fehlende Enddatum ist nie < Getdate :)

Schönen Feiertag,
trib

Thema: Heutige Jugend zu "faul" zum lernen?
Am im Forum: Smalltalk

Hallo zusammen,

diese Frage habe ich mir auch schon häufig gestellt. Das Hauptproblem ist sicherlich der Wandel, den das Internet mit sich führt. Früher musste man für seine Doktorarbeit noch in die Bibliothek. Heute reicht eine Maus, Strg, C & V.
Viele Jüngere probieren garnichts mehr aus, sondern kennen mindestens einen aus dem Bekanntenkreis, den sie mal "eben" anschreiben können.
Wozu recherchieren, wenn man nur kurz eine Frage eintippen muss? Vielleicht käme man bei einer vernünftigen Suche im Internet auch mit deutlich weniger Worten und Aufwand aus, aber diese Option scheint es bei manchen einfach nicht zu geben. Das passiert auch nicht aus böser Absicht, sondern weil sie es nie anders gelernt haben. Und weil es immer noch zu häufig funktioniert :)

Allerdings gibt es in jeder Firma auch die "An alle Mailuser"-Nachrichten von alten Hasen, die man am liebsten mit lmgtfu beantworten würde. Oder in riesigen Foren, in denen Leute zwischen 30-40 Jahren nicht in der Lage sind den ersten Post im Thread zu lesen und eine Frage zum fantastillionsten Mal stellen.

Es ist also nicht so, dass es nur bei jungen Leuten so läuft. Überall wo einem Arbeit abgenommen werden kann, wird es auch Menschen geben, die das in Anspruch nehmen.

Thema: WPFMessageBox
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

ich hänge mich mal in den Thread hinein, da ich ebenfalls eine eigenen WPF-MessageBox gebaut habe.
Allerdings bin ich auf ein Problem gestoßen und habe ich die obigen Beispiele getestet. Mit selbigem Ergebnis:
Rufe ich die MessageBox/TaskDialog aus einem Thread auf, so gibt es eine Exception

Fehler
"Beim aufrufenden Thread muss es sich um einen STA-Thread handeln, da dies für viele Komponenten der Benutzeroberfläche erforderlich ist."
Okay, das ist natürlich nachvollziehbar. Also das ganze entweder Invoken oder per [STAThread] versehen. Allerdings ist das nicht möglich, da bereits im Konstruktor die Exception auftritt.

Die Standard-MessageBox kann natürlich auch aus einem Thread oder BackgroundWorker aufgerufen werden. Alle von mir getesteten benutzerdefinierten MessageBoxen haben dasselbe Verhalten.

Eine zwei Tage andauernde Suche hat mich auch nicht wirklich weitergebracht :-/
Meist wird beschrieben, wie ich den Thread in dem STAThread aufrufen kann, aber das kommt für den Anwendungsfall leider nicht in Frage, da ich den Aufrufer ja garnicht kenne. Und ich würde dann alle Parallelisierungen zur Nichte machen.

Wahrscheinlich passt der Post auch in ein eigenes Thema. Wenn´s so ist, bitte verschieben :)

Gruß,
trib

Thema: Fehler 501 bei FTP Webrequest Schreibversuch
Am im Forum: Netzwerktechnologien

Wie MrSparkle schon vermutet, bin ich auch überrascht einen FTP-Pfad mit einem Laufwerksbuchstaben anzusprechen. Möglicher weise ist der Root-Ordner einfach als "F:" benannt. Aber das widerspricht etwas den Namenskonventionen von Ordnern...

Wie auch immer, hier fehlt definitiv noch ein Slash:

Zitat von skywalker1979

string uri = "ftp://" + ftpServerIP + "/%2F/F:" + "Ordner/" + fi.Name;
Es müsste "/%2F/F:" + "/Ordner/" heißen.

Thema: Das Zeichnen von vielen kleinen Kacheln flackert
Am im Forum: Grafik und Sound

Da muss ich doch glatt meinen Thread wieder aus der Versenkung holen.

Nachdem ich seit längerer Zeit mein Projekt habe brach liegen lassen, hat mich mal wieder der Ehrgeiz gepackt.
Die Problematik ist weiterhin folgende gewesen:
Zeichne ich 100 "Pixel" mit DrawRectangle, so werden diese nahezu sofortig angezeigt.
Nutze ich selbige Logik für Kreise mit DrawEllipse, dauert dies doppelt so lange.
Die Dauer steigt exponentiell mit der Anzahl der "Pixel".

Sobald sich die Farbe oder Größe eines Pixels ändert, so wird nur dessen Bereich neu gezeichnet. Quasi alle Tipps in den o.g. Links habe ich ausprobiert und die Zeiten miteinander verglichen, die das Zeichen von 100 Kreisen beansprucht hat. Ohne eine wirkliche Verbesserung zu spüren.

Nun habe ich das Projekt neu aufgebaut und gesehen, dass ich zwar in der Hauptform

this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
setze, nicht aber in dem Control selbst. Und genau da lag der Hase begraben!
Naiver Weise bin ich davon ausgegangen, dass das Setzen des DoubleBuffers auf der Form sich automatisch auf dessen Controls auswirkt. Das ist aber nicht so!

Die ganze Testerei war also sinnlos und der DoubleBuffer im Konstruktor des Controls hat das gewünschte Ergebnis erzielt.

Vielleicht hilft diese späte Erkenntnis jemandem weiter :)

Thema: Mobiltelefon mit guten SDK zum Verschicken und Empfangen von SMS gesucht
Am im Forum: Smalltalk

Dann würde ich ein Windows Mobile Gerät empfehlen.
Es kann in .Net Programmiert werden, gibt hunderte Tutorials und die SDK ist gibt es bis zur letzten Version (6.5).
Geräte gibt es wie Sand am Meer für erschwingliche Preise. Dabei hält der Akku, im Gegensatz zu aktuellen Geräten, meist noch eine Woche.

Allerdings setzt man auf eine tote Technologie, da es seit Windows Phone und Windows Embedded 8 keine Weiterentwicklung von CE/Mobile mehr gibt.

Jeder Hersteller hat meist noch eine eigene SDK für Sensorik usw. bereitgestellt. Das ist für die SMS Funktionalitäten aber nicht notwendig.