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 Th69
Thema: Windows-Fotoanzeige zeigt nicht alle .jpg-Dateien an
Am Heute, im Forum: Smalltalk

OK, ich hatte erst überlesen, daß es sich um einen direkten Screenshot vom Handy handelt.

Deinen angehängten (mit Paint.NET bearbeiteten) Screenshot kann ich aber problemlos sowohl im Window-Explorer (auch separat im Vorschaufenster) als auch in "Fotos" oder IrfanView anschauen. Ich sehe auch in den Metadaten nichts auffälliges.

Die Fehlermeldung "Out of Memory" ist ein genereller Fehler beim Laden von Bildern (mittels GDI+), s. z.B. die (akzeptierte) Antwort von "Hans Passant" in Is there a reason Image.FromFile throws an OutOfMemoryException for an invalid image format?

Es könnte auch ein externes Programm auf deinem Windows-Rechner sein, was das Anzeigen unterbindet (z.B. weil es die Datei lockt).

Thema: mit Task.Factory.StartNew eine class aufrufen
Am Gestern, im Forum: Basistechnologien und allgemeine .NET-Klassen

Um DataBinding mit WinForms und dem DataGridView (DGV) zu verstehen, empfehle ich den Artikel A Detailed Data Binding Tutorial (bes. auch den dazugehörigen Source-Code zum Testen und Ausprobieren).

Generell solltest du dein Programm nach und nach auf die 3-Schichten Architektur umstellen (d.h. Trennung von UI, Logik und Datenzugriff), dadurch vereinfacht sich vieles am Programmcode (und du bist nicht auf dauernde Workarounds angewiesen).

Thema: Windows-Fotoanzeige zeigt nicht alle .jpg-Dateien an
Am Gestern, im Forum: Smalltalk

Mit welchem Programm hast du denn die Screenshots erstellt (und welche Auflösung haben diese Bilder)?

Thema: mit Task.Factory.StartNew eine class aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Abt,

Zitat von Abt
Dann wäre da noch die Zeile if(string.IsNullOrEmpty(task.Result) return; die zu einem absoluten NoGo im Umgang mit Tasks gehört.
Potenzielle Fehler bei Daten- und Aufgabenparallelität
Zitat von Abt
Hab Dir auch den Link gegeben, in dem steht, dass Du .Result nicht verwenden sollst. Denke nicht mal 1% der .NET Entwickler werden den eigentlichen Sinn von .Result verwenden (müssen); in 99% ist es ein (unwissentlicher, aus Bequemlichkeit) Missbrauch, der die im Link beschriebenen negativen Nebenwirkungen hat, die dann Fehler auslösen können, die dann schwer zu finden / reproduzieren sind.
Hast du evtl. den falschen Link gepostet, denn der bezieht sich auf die TPL (nicht Task) - da steht zumindestens nichts von Task.Result?

Gefunden habe ich z.B. C# Async Antipatterns ("4. Blocking on tasks with .Result or .Wait").


Hallo MoaByter,

und dies ist dann auch der Grund warum dein bisheriger Code hängenbleibt. Du blockierst mittels task.Result den UI-Thread und in deinem Nebenthread wird versucht den UI-Thread (per Invoke) anzusprechen (der aber gerade auf das Ende der Methode wartet -> Deadlock!).

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Gerade habe ich die Suche benutzt, und neben dem schon von @Wilfried gemeldeten Fehler bzgl. „Treffer als Themen anzeigen“, ist mir noch aufgefallen, daß es keine Möglichkeit mehr gibt, die Suche auf bestimmte Unterforen zu beschränken (und auch bei der Anzeige der Themen wäre es schön, wenn zumindestens dann das Unterforum dazu aufgelistet wird).

Edit: Bei der Suche fehlt bei den weiteren Buttons für die Seiten der view-Parameter (d.h. &view=ThreadView).

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

OK, jetzt habe ich wohl den Grund gefunden: die letzte Login-Session war noch mit "Firefox 85" registriert, die aktuelle mit "Firefox 86".
Trotzdem ist das eigenartig, denn die Version hatte ich schon letzte Woche aktualisiert (die Firefox Version 86 erschien am 23.2.).

Und die letzte Session wird mir so angezeigt:

Zitat
Gestern, 17:53 | 22.02.2021 - 17:56:06 | 08.03.2021 - 17:53:58
(also gestern war ich noch aktiv damit hier im Forum und sie gilt eigentlich noch bis nächsten Montag)

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Heute morgen mußte ich mich aber auch wieder neu einloggen, obwohl ich die letzten Tage aktiv war (und sogar letzte Woche am Donnerstag noch einen Beitrag geschrieben hatte).

Thema: Grid - Feste Row Height wird ignoriert
Am im Forum: GUI: WPF und XAML

Probiere mal zusätzlich MinHeight und MaxHeight bei der RowDefinition auf 8 zu setzen.

Thema: Dynamische WPF Elemente
Am im Forum: GUI: Windows-Forms

Hallo,

Stichworte: ItemsControl und Template, s. z.B. WPF Tutorial/The ItemsControl und WPF ItemsControl Example - am besten in Verbindung mit [Artikel] MVVM und DataBinding benutzen.

PS: Du solltest deinen Beitrag noch mal bearbeiten und die Link-Titel setzen.

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Da wirst du wohl blockweise Daten auslesen müssen und dann den Suchtext dadrin suchen müssen (und dann jedemal Blockgröße - Länge_des_Suchtexts weiterspringen, damit der Suchtext nicht übersprungen wird).

PS: Um was für ein Dateiformat handelt es sich denn?

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Das mache ich (bisher) jetzt auch, aber dort kann ich weder "alle Themen als gelesen" markieren (oder einzelne), noch sehe ich dort die Forenkategorie des Beitrags (mich interessieren einige Unterforen, z.B. "Web" gar nicht, d.h. Filterung ist auch nicht möglich). Und dauerhaft "orange Icons" (weil nicht gelesen) zu sehen, finde ich sehr irritierend.

Und wofür ist sonst die Hauptseite "Diskussionsforum"?

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Hallo Abt,

habe jetzt gerade deine Antwort gelesen.
Aber das heißt dann, daß ich auf der Hauptseite nicht mehr sofort erkenne, in welchen Unterforen neue Beiträge sind (solange ich nicht alle orange markierten Unterforen öffne)?
Ich hatte bisher ein Unterforum erst dann geöffnet, wenn es mehr als den "letzten Beitrag" gab (und somit nach Lesen dessen das Unterforum weiterhin als orange markiert war).
Und für mich nicht interessante Unterforen (bzw. Beiträge dadrin), habe ich danach "alle Themen als gelesen" aufgerufen und später nach einem Reload sehe ich dann evtl. wieder neue Beiträge.

Wie stellst du dir denn die gesamte Prozedur jetzt vor?

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Noch zwei Kleinigkeiten auf der https://mycsharp.de/forum sind mir aufgefallen:
1. Oben stehen die beiden Links "Aktive Themen Themen ohne Antwort" direkt nebeneinander. Vllt. wäre ein Trennstrich (" | ") o.ä. etwas schöner - um die beiden als Links besser identifizieren zu können. Und "alle Themen als gelesen markieren" fehlt dort noch - aber das habt ihr wahrscheinlich schon auf euer Liste?
2. Unten stehen erst die "Derzeit aktive Benutzer: ..." und darunter dann in Fettschrift das Wort "Statistik" - das kommt mir etwas eigenartig vor...

PS: Schon wieder wurde der Link-Titel nicht in der Vorschau hinzugefügt (sondern wieder die ganze URL) - diesmal lasse ich es so, damit ihr es mal seht (ich hatte nur https://mycsharp.de/forum in den Editor eingefügt).

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Mir gefällt die orange Farbe bei den Icons auch sehr gut.

Mir ist jedoch jetzt aufgefallen, daß auf der Hauptseite myCSharp.de - Diskussionsforum noch einige Unterforen mit orangem Icon dargestellt werden (nach Reload), obwohl ich direkt über die Aktive Themen die neuen Beiträge alle gelesen habe. Erst wenn ich direkt die Unterforenseite (z.B. GUI Windows-Forms) aufrufe und danach dann einen Reload mache, verschwindet das orange Icon auf der myCSharp.de - Diskussionsforum.

PS: Weiterhin werden mir alle älteren Themen (d.h. die vor Umstellung des Forums) in den Unterforen als orange angezeigt?!

PPS: Außerdem wurden bei den obigen Links zu den Unterseiten ("Aktive Themen" sowie "GUI Windows-Forms") von der Forensoftware (in der Vorschau) die Titel nicht gesetzt (sondern stattdessen die gesamte URL) - daher habe ich dies händisch nachgepflegt.

Thema: Canon Kamera connect
Am im Forum: Grundlagen von C#

s. Get Imagesource from Memorystream in c# WPF (statt MemoryStream kannst du einen beliebigen Stream bei BitmapImage.ImageSource einsetzen).

Thema: WPF DataGrid - Refresh single Item
Am im Forum: GUI: WPF und XAML

@ChristianAT. Du hast meinen eingeklammerten Satz noch nicht beachtet. Nimm dir ein Beispiel an dem Code in C# WPF & MVVM | update data of a property with a binding to the object (bei dir dann die Klasse Mitarbeiter statt Student).
Und statt dem Neuladen aller Daten, einfach die passenden Eigenschaften des Mitarbeiter-Objekts ändern (und dieses ruft dann PropertyChanged auf!).

Wie auch JimStark geschrieben hat, wenn Mitarbeiter bei dir bisher eine reine Modelklasse ist, dann erzeuge eine weitere ViewModel-spezifische Klasse und verwende diese dann (d.h. kopiere die Daten aus dem Model in das VM-Datenobjekt).

PS: Auch die Verwendung von [CallerMemberName] beim OnPropertyChanged-Aufruf vereinfacht den Code.

Thema: Canon Kamera connect
Am im Forum: Grundlagen von C#

Öffne die Solution EDSDKWrapper.sln und lass sie kompilieren, dann füge die damit erzeugte EDSDKWrapper.Framework.dll zu deinem Kamera-Projekt hinzu.
Beachte, daß du dann auch die nativen COM-DLLs zum Ausführen benötigst:

Zitat
To use EDSDK in your .NET project, put these DLLs and folder “icc” into your Debug or Release folder and add a reference to the EDSDKWrapper.Framework.dll.

Thema: WPF DataGrid - Refresh single Item
Am im Forum: GUI: WPF und XAML

Hallo und willkommen,

warum arbeitest du nicht mit [Artikel] MVVM und DataBinding?

Dann würdest du im ViewModel direkt eine Eigenschaft vom Typ ObservableCollection<Mitarbeiter> halten und nach Änderung des einen Eintrags PropertyChanged(...) aufrufen (dazu muß jedoch auch die Klasse Mitarbeiter das Interface INotfiyPropertyChanged implementieren, evtl. brauchst du dazu dann eine ViewModel-spezifische Mitarbeiter-Klasse).

Thema: Herangehensweise beim Laden von Bilder mit unüblichen Format
Am im Forum: Rund um die Programmierung

Alternativ zum Portieren des Codes nach C# (je nach Umfang):
Wenn schon Code in C da ist, dann könntest du daraus eine DLL (Library) erzeugen und diese von C# aus mittels P/Invoke (DllImport) einbinden (die Datenstrukturen müssten dann entsprechend "gemarshallt" werden).

Thema: Wie aktuelles Datum in einen Json String einbetten?
Am im Forum: Grundlagen von C#

Du solltest doch wissen, wie man Strings verkettet???
Alternativ mittels $ – Zeichenfolgeninterpolation.

Thema: DLL mit Form-Vererbung läßt sich von VS nicht laden
Am im Forum: GUI: Windows-Forms

Hallo,

du hast also das Projekt mit dem Basisformular als Verweis (reference) zu dem Hauptprojekt hinzugefügt und dann bei einer Form die Basisklasse entsprechend geändert? Und beim Ausführen kommt dann die Fehlermeldung?

Ist die DLL denn beim Bauen in das Ausgabeverzeichnis ("bin/debug" bzw. "bin/release") kopiert worden? Ansonsten gibt es beim Verweis dafür eine Einstellung ("Copy local").

Thema: Speichern und Laden eines 2dArrays
Am im Forum: GUI: WPF und XAML

Neben dem Gesagten von @Abt: beim Lesen greifst du bisher gar nicht auf die Daten des Streams zu (analog zum BinaryWriter benötigst du hier dann einen BinaryReader) - Array01 sowie die FileInfo-Instanz sind also überflüssig.

Außerdem solltest du keine Magic-Numbers verwenden, sondern mittels Array.GetLength(DIM) (mit DIM = 0, 1, ...) kannst du die Größen des Arrays auslesen.

Thema: Foreach und Switch Case
Am im Forum: Grundlagen von C#

Trotzdem ist da noch ein Logikfehler, da du innerhalb der Ereignismethode ja mittels timer.Interval = ... das Intervall änderst, dieses dann aber für alle 4 Ampeln gleichzeitig gilt.
Du mußt je Ampel einen eigenen Timer verwenden (bzw. einen Timer mit der höchsten Frequenz erzeugen und je Phase einen Zähler (als Faktor) verwenden).

Thema: Foreach und Switch Case
Am im Forum: Grundlagen von C#

Wofür hast du überhaupt die foreach-Schleife? Es soll doch pro Durchlauf des Timer-Ereignisses nur genau eine Phase weitergehen.

Thema: Wie pushe ich ein Repo auf GitHub?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

s. direkt die Doku bei GitHub: Visual Studio: Publishing an existing project to GitHub

Im selben Ordner VisualStudio/docs/using/ befinden sich weitere Docs.

Und wenn Fehler kommen, dann zeige sie hier.

Thema: Wie kann ich die jeweilige Rechenart von der Methode Mathoperator nutzen?
Am im Forum: Grundlagen von C#

In der Methode CmdGleich_Click mußt du nur MathOperation mit den passenden Parametern (aus deinen Listen) aufrufen.
Dazu mußt du aber noch in CmdPlus_Click (und den anderen zweistelligen Operatormethoden) den ausgewählten Operator in die operatorenListe eintragen (bzw. wie schon geschrieben, wäre hier Stack<string> besser, so daß du die Elemente mittels Push und Pop hinzufügen und wieder davon entfernen kannst).

PS: Schlecht zu lesen finde ich deinen Code nicht, jedoch hast du noch ziemlich viele Code-Wiederholungen drin.
Du könntest z.B. folgenden Zeilen in eine eigene Methode AddDigit (mit Parameter) auslagern:


txtOben.Text += "1";
txtUnten.Text += "1";
zahl = zahl += "1";
Und du könntest sogar alle 10 Ziffernbuttons mit derselben Ereignismethode verknüpfen und dann dessen Text (Ziffer) auslesen:


private void CmdDigit_Click(object sender, EventArgs e)
{
  Control control = sender as Control;
  if (control != null)
  {
    string digit = control.Text;    
    AddDigit(digit); // obige Methode mit Parameter aufrufen
  } 
}
(ähnlich ginge es dann auch für alle Operatoren)

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Dann sollte es doch kein Problem sein, beim Parsen den passenden Titel aus dem Link (anhand der Thread-ID) zu holen?!

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Ja genau, den Link meine ich. Ist denn wirklich der (teilweise gekürzte und um Umlaute bereinigte) Titel im Link erforderlich? Was ist, wenn der Titel nachträglich geändert wird (passen dann die Links noch)? Die Thread-ID alleine ist doch eindeutig (der Aufruf des Themas funktioniert ja auch so).

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Beim Erstellen einer Antwort ist mir gerade aufgefallen, daß Links auf andere myCSharp-Themen zwar mit URL-Tags versehen werden, der Titel jedoch nicht übernommen wird (dies fand ich beim alten Forum sehr bequem ;-), sondern gleich der URL gesetzt wird.

Thema: Wie kann ich die jeweilige Rechenart von der Methode Mathoperator nutzen?
Am im Forum: Grundlagen von C#

Hallo,

da hast du dir aber eine für Anfänger schwierige Aufgabe gestellt.
Du solltest ersteinmal deinen Taschenrechner so programmieren, daß direkt nach Eingabe des Operators die Rechnung ausgeführt wird (also ohne Punkt-vor-Strich).

Üblicherweise wird ein Rechner mit Beachtung der Operatorprioritäten (Punkt-vor-Strich) mithilfe eines Operatorstacks implementiert, der sich an Umgekehrte polnische Notation (UPN) orientiert, s. z.B. Simple Arithmetic Expression Evaluator oder Stack-based calculator (auch wenn der Code in C++ ist).

Alternativ könntest du, wie auch schon von @JimStark angesprochen, einen Parser benutzen, z.B. meinen Parser für mathematische Formeln.