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 Alf Ator
Thema: Mit Reflection Datenbankwerte lesen
Am im Forum: Datentechnologien

Hallo Maendler53

Deine konkrete Frage habe ich auf die Schnelle nicht gefunden. Wie ist die?

Abgesehen davon hat Abt schon alles gesagt. So was macht man auf keinen Fall selber, höchstens als Fingerübung, um es direkt danach weg zuwerfen.

Mir ist noch aufgefallen, dass du unglaublich viele Rechtsschreibfehler machst. Nicht nur in deinem Text, in dem fast jedes dritte Wort falsch ist, sondern auch im Code. Beispiele: 'birstDay', 'coment', 'imagePaht'. Wenn ich so was sehe, weiß ich sofort, dass ich es mit Larifari-Code zu tun habe. Geb dir da mehr Mühe, das ist eine Einstellungs-Sache.Bei der Rechtschreibung fängt es an. Legastenie ist da keine Ausrede. Verwende Tools um die Rechtschreibung zu checken und lese mehrmals, bis alles korrekt ist.

Herzliche Grüße
Alf

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Zitat von Little Tester
@Abt: Wie meinst du das? Was habe ich überlesen?

Meine Nachfrage hast du auch überlesen:

https://stackoverflow.com/questions/39107878/creating-shortcut-in-startup-folder-using-inno-setup


Bzw auch dort muss ein working folder angegeben werde:


[Registry]
 Root: HKA; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; ValueType: string; ValueName: "Systeminventory"; ValueData: """{app}\Systeminventory.exe"""; Flags: uninsdeletevalue

Thema: AutoUpdater.NET gibt Fehler, wenn Programm aus Autostart gestartet wird
Am im Forum: Rund um die Programmierung

Hallo Little Tester

Kannst du bei Inno-Setup ein 'working directory' mit angeben?

Gruß
Alf

Thema: Fragen zur Schnittstelle Sharp7 (C# - S7)
Am im Forum: Code-Reviews

Hallo Tommylik

Ich vermute, dass result noch gefüllt werden kann, z.b. ob die DBRead-Operation erfolgreich war.

[Edit]
Ich habe jetzt doch mal nachgeschaut, in der von dir verlinkten Seite kann man ein Beispiel dazu finden:


private ComponentResult LeakResult()
{
    ComponentResult Result = new ComponentResult();
    byte[] Buffer = new byte[26];
    // Reads the buffer.
    Client.DBRead(100, 0, 26, Buffer);
    // Extracts the fields and inserts them into the struct
    Result.SerialNumber = S7.GetCharsAt(Buffer, 0, 12);
    Result.TestResult = S7.GetIntAt(Buffer, 12);
    Result.LeakDetected = S7.GetRealAt(Buffer, 14);
    Result.TestDateTime = S7.GetDateTimeAt(Buffer, 18);
    return Result;
}


Gruß
Alf

Thema: Formularwechsel mit .DLL funktioniert nicht
Am im Forum: GUI: Windows-Forms

Zitat von Loofsy
Ich lösche den Panelinhalt mit Clear(); und füge den neuen Inhalt mit Add(form) ein.


Dann müsste ja alles funktionieren. ;-)

Aber jetzt mal ernsthaft, ich kann mit den wenigen Angaben die du machst wenig anfangen.
Versuche mal deinen Text zu lesen und stell dir vor, du weißt nicht worum es geht.
Ich kann hier also nur raten. Hast du denn die Assembly in dein Projekt eingebunden, baut es?

Gruß
Alf

Thema: Formularwechsel mit .DLL funktioniert nicht
Am im Forum: GUI: Windows-Forms

Hallo Loofsy

Wie sieht denn der Code in deinem Button-Klick aus?

Gruß
Alf

Thema: [gelöst] Aus mehrere XML Dateien Daten extrahieren
Am im Forum: Datentechnologien

Zitat von IchAJ
Noch eine Frage: wie kann ich das Thema schließen?

Wie schon geschehen, einfach im Titel ein [gelöst] davor schreiben.

Thema: API zu einer Klasse, Grundschwatzfrage
Am im Forum: Grundlagen von C#

Hallo panicJonny

Zitat von panicJonny
Da hab ich mir gedacht, ich mache für häufige Datentype spezielle Methoden.

Zum Beispiel StringConverter.ToInt(string).

Wäre das eigentlich zu viel des Guten und fallen euch andere Lösungen ein?

Das kannst du schon so machen. Das ist für die BasisTypen ja eine nette Verbesserung der Lesbarkeit.

Du könntest das auch noch als Extension-Method anbieten:


var result = "123".ToInt();

Gruß
Alf

Thema: Wie kann ich zwei bool Werte invertieren?
Am im Forum: Grundlagen von C#

Hallo LaTuor

Zitat von LaTuor
Wenn ich den Radio anmache geht der Bool von aus=true in aus=false und gleichzeitig geht ja ein=false zu ein=true. Wie macht man das?


public bool IsAngeschaltet { get; set; }
public bool IsAusgeschaltet => !IsAngeschaltet;

Gruß
Alf

Thema: Wie kann ich aus .NET Core via COM-Call eine .NET Framework Assembly aufrufen, die Reports erzeugt?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Abt
Die letzten Monate haben eher gezeigt, dass so eine "Zwitter-Runtime" mit .NET Core -> NET Framework -> COM keine gute Idee ist und das nicht so super toll funktioniert.

Ich gehe sogar soweit zu behaupten, dass COM niemals mehr benutzt werden sollte und jeder! andere Ansatz besser (weniger schlecht) ist.


Noch zur Sache:
Du könntest den Report-Teil ja als eigene Applikation laufen lassen.
Werf ihm die Daten als XML hin und lass eine deine Report-App drüber laufen, oder biete das ganze als REST-Service an. Gibt da einige Möglichkeiten.

Thema: Wie kann ich die Tasten left, right, up down an ein serielles Gerät senden?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi Wollez

Schau mal in das Keys Enum, was du genau sendest:

Die Frage ist auch noch, wann du deinen .Write-Befehl überhaupt absetzt. Im KeyDown-Event oder so?
Bist du mal mit dem Debugger dahin?

Bei SendKeys.Send steht in der Doku übrigens {DOWN} und nicht {down}. Kein Plan ob das einen Unterschied macht, aber als Entwickler solltest du auf so Kleinigkeiten achten.

Gruß
Alf

Thema: [Gelöst] Wie kann ich mit möglichst kurzer Syntax Items in einem Dictionary adressieren?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo pollito

Du kannst noch nameof() verwenden:


public string Nummer => this.Fields[nameof(Nummer)];

public Dictionary<string, string> Fields = new Dictionary<string, string>()
{
    {nameof(Nummer), "Das ist NUMMER"},
};


Ansonsten noch ein Link zur Info: DynamicObject Class
Sowas sollte aber nur in absoluten Ausnahmefällen Anwendung finden.

Gruß
Alf

Thema: [SUCHE] Tool, welches unter Win10 Einstellungen prüft und nach einer Vorgabe anpasst
Am im Forum: Smalltalk

Über das Rechte-System lassen sich die Einstellungen auch im Detail vornehmen.

Du kannst den Rechner auch im sogenannten Kiosk-Mode laufen lassen.
Beispiele:
https://docs.microsoft.com/en-us/windows/configuration/kiosk-single-app
https://www.wintotal.de/tipp/windows-10-kiosk-modus/

Vor 20 Jahren habe ich die Schul-PCs bei Bedarf mit einem Image überbügelt. Die Benutzer-Profile lagen im Netz.
Du könntest auf dem IPC auch eine Virtuelle Maschine laufen lassen und das entsprechende Image immer wieder herstellen.

Thema: [SUCHE] Tool, welches unter Win10 Einstellungen prüft und nach einer Vorgabe anpasst
Am im Forum: Smalltalk

Hallo Krumnix

Zitat von Krumnix
bei unseren Maschinen liefern wir einen IPC mit.

Was ist denn ein IPC? Ein Industrie PC?


Zu deiner Frage:
Du kannst und solltest über das Rechte-System verhindern, dass die Benutzer auf dem PC 'rumspielen'. Der Benutzer im 'IPC' sollte in einem eingeschränken Kontext laufen. Das ist aber ein ziemlich weites Feld, in das du dich erstmal einlesen solltest.

Gruß
Alf

Thema: Wie kann ich RGBW-Code zu RGB/HSL-Code umwandeln?
Am im Forum: Grafik und Sound

Zitat von Lucky_001
Aber was auch gut sein kann ist dass ich die formel nicht richtig benutzt habe.
Denn ich weiß nicht was RGB sein soll.

Deswegen ist es so wichtig, dass du als Fragesteller erklärst, was du schon versucht hast und woran es scheitert. Das du dich mit dem Thema RGBx beschäftigst, bin ich davon ausgegangen, dass du weißt was das ist.

R, G und B stehen für den jeweiligen Farbanteil: (Rot, Grün, Blau). (255, 0, 0) ist reines Rot.

RGBW hat noch einen Weißanteil, damit kann man ungefähr die Helligkeit steuern.

Willst du RGBW in RGB umwandeln, dann geht diese 'Helligkeits'-Information verloren.
Das musst du dann durch eine entsprechende Umrechnung kompensieren.

Beispiel:
Du hast RGBW (120,50,20, 60):

Der Rot-Anteil (R) ist 120.
Den Rotanteil (R') für das Ergebnis kannst du mit der Formel ausrechnen:
RGBW=RGB+(255-RGB)*W/3/255

G + B erstmal ignorieren und etwas umstellen:
R' = R - [(255-R) * (W/3/255)]

R' = 120 - [(255-120) * (60/3/255)]
R' = ~110

Das Gleiche für G und B machen und du erhälst:
(110, 56, 29)

So könntest du es mal probieren. Wie es sich auf dem entsprechenden Gerät tatsächlich verhält, ist natürlich noch so eine Sache. Exakt gleich wird es sich nicht einstellen lassen.


PS:
Ich möchte an der Stelle noch erwähnen, dass ich keine Ahnung von dem Thema habe. Also wenn ich groben Unfug erzählt habe, mich bitte darauf aufmerksam machen.

Thema: Wie kann ich RGBW-Code zu RGB/HSL-Code umwandeln?
Am im Forum: Grafik und Sound

Woher weißt du denn, welches Ergebnis richtig ist?

Thema: Wie kann ich RGBW-Code zu RGB/HSL-Code umwandeln?
Am im Forum: Grafik und Sound

Ja, das umgekehrte Problem scheint öfter der Fall zu sein.

Ich habe meine google-Künste nochmal angeworfen und bin auf diesen Link gestoßen:
RGBW and RGBA to RGB conversion for colour presets

Thema: Wie kann ich RGBW-Code zu RGB/HSL-Code umwandeln?
Am im Forum: Grafik und Sound

Dann versuche es mal mit dem zweiten Punkt, den ich erwähnt habe:

Zitat von Alf Ator
Bitte lese dir auch Wie poste ich richtig? durch. Im speziellen Punkt fünf.


Was genau hast du schon probiert, woran genau hapert es?

Thema: Wie kann ich RGBW-Code zu RGB/HSL-Code umwandeln?
Am im Forum: Grafik und Sound

Hallo Lucky_001

Meine google-Suche spuckt folgendes aus:
Converting an RGBW color to a standard RGB/HSB representation

Hilft dir das?

Bitte lese dir auch Wie poste ich richtig? durch. Im speziellen Punkt fünf.

Gruß
Alf

Thema: Kopierte List<T> Änderung in der Kopie ändert auch Oroginal
Am im Forum: Grundlagen von C#

Hallo Emskop

Du hast zwar eine zweite Liste, aber die Objekte die du da rein machst, sind die selben! wie die aus der ersten List. Stichwort Reference Type.
Google spuckt unter anderem das hier aus: https://www.tutorialsteacher.com/csharp/csharp-value-type-and-reference-type

Ansonsten kannst du das letzte Objekt einer Liste zu einer anderen hinzufügen indem du nur das letzte der neuen Liste hinzufügts:


LastData.Add(Lst_TL_Data.Last());

Übrigens ist Lst_TL_Data ein ungeschickt gewählter Name:
Heißt das Last_TL_Data oder List_TL_Data?

Ein kleiner Buchstabe, der die Lesbarkeit deutlich erhöht.


Gruß
Alf

Thema: Automatisch generierte Pfad
Am im Forum: Grundlagen von C#

Hier mal händisch runtergeschrieben:


private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
	var dialogResult = MessageBox.Show("Speichern?","Zeiterfassungstool", MessageBoxButtons.YesNoCancel);

	switch (dialogResult)
	{
		case DialogResult.Yes:
		{
			SaveData();
			// Application wird nach dem Speichern beendet
		}
		case DialogResult.No:
		{
			// Application ohne speichern beenden
		}
		case DialogResult.Cancel:
		{
			// Application doch nicht schließen
			e.Cancel = true;
		}
	}
}

private void SaveData()
{
	var myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
	var fileName = $"Zeitbuchung_{DateTime.Now.ToString("yyyyMMdd_HHmmss")}.txt";
	var fullFilePath = Path.Combine(myDocumentsPath, fileName);
	
	var stringBuilder = new StringBuilder();
	foreach (var row in dataGridView1.Rows)
	{
		foreach(var column in row.Columns)
		{
			stringBuilder.Write(column.Value);
		}
		stringBuilder.WriteLine();
	}
	File.Write(fullFilePath, stringBuilder.ToString());
}


Edit:
Bitte auch beachten, was die anderen geschrieben haben.

Thema: Visual Studio 2019 - Class View bzw. Code Behind einer Form fehlt im Projektmappen-Explorer
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Gasimodo

Ich habe keine Ahnung, ob und wie man das einstellen kann.

Falls ich mal in die andere Ansicht muss, benutze ich die Tastenkombination 'F7' bzw. 'Shift+F7'.

Gruß
Alf

Thema: Wie beim OpenFileDialog nach Dateiendung filtern?
Am im Forum: Grundlagen von C#

Zitat von BerndFfm
Es gibt außerdem "Path.GetExtension()".

Für Datei- und Ordneroperationen bitte gerne die Klassen aus dem System.IO-Namespace (oder passendes Äquivalent) verwenden.

Thema: Wie kann ich aus meinem Programm auf eine externe DLL/API zugreifen?
Am im Forum: Grundlagen von C#

Hallo -eichi-

Erstmal vorne weg, wir helfen hier gerne, aber bitte lese dir [Hinweis] Wie poste ich richtig? durch.
Insbesondere Punkt 2.2 Keine Crossposts (https://ww3.cad.de/foren/ubb/Forum22/HTML/005523.shtml).

Zitat von -eichi-
Jedoch bringt er mir immer den Fehler das "ReadBodyName" nicht als extern oder abstrakt gekennzeichnet ist , wenn ich "extern" davor schreibe bringt er mir die Fehler:
- extern muss dem membertyp/namen vorangehen
- Methode muss einen Rückgabetyp besitzen
- der Name Obj ist im aktuellen kontext nicht vorhanden

Das Keyword extern ist dafür da um externe Methoden zu deklarieren. Wenn man zum Beispiel eine C++-dll einbindet. Megadotnet.dll ist eine .NET-dll und der C#-Compiler kann die Deklaration aus der dll entnommen werden. Die Lösung hat Abt schon beschrieben.

Ich habe auf die schnelle keine Beschreibung der API gefunden. Kannst du bitte einen entsprechenden Link schicken?

Gruß
Alf

Thema: Wann setze ich IEnumerable und yield ein?
Am im Forum: Grundlagen von C#

Hallo JimStark

Das mit den Bildern ist eigentlich ein gutes Beispiel. Angenommen du willst eine Vorschau mit maximal 10 Bildern anzeigen, aber nicht alle 4000 Bilder gleichzeitig laden, dann kannst du mit yield nur jeweils die benötigten Bilder für die Vorschau laden.

Dein Code ist nicht ganz korrekt.


public IEnumerable GetAllImages(IEnumerable<string> imagePathes)
{
  foreach (var imagePath in imagePathes)
  {
       yield return Image.FromFile(imagePath]);
  }
}


Edit: siehe auch Abts Kommentar.
Gruß
Alf

Thema: Wie kann ich nach Button-Click Ladeanzeige anzeigen bis Form öffnet?
Am im Forum: GUI: Windows-Forms

Hallo Rico913

Du kannst dich einfach an die entsprechenden Events hängen:

https://docs.microsoft.com/en-us/dotnet/framework/winforms/order-of-events-in-windows-forms

Gruß
Alf

Thema: CultureInfo de-DE hat Punkt statt Komma als Dezimaltrennzeichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo ChilliShelly

Das hängt mit sehr hoher Wahrscheinlichkeit mit den Regional-Einstellungen auf den jeweiligen Rechnern zusammen. Check das doch mal.

Gruß
Alf

Thema: Wie implementiere ich einen Zurück-Button in einer App-Navigation mit MVVM?
Am im Forum: GUI: WPF und XAML

Zitat von MrSparkle
- Die Navigation in einen NavigationService auslagern und diesen (z.B. per Dependency Injection) an alle ViewModels übergeben. Dann kannst du diesen Service von überall verwenden, um zu einer Seite zu navigieren, und das MainViewModel kann auf die Änderungen reagieren.

Hallo CombatKarl

Das was du vorhast, kann schnell komplex werden, wie du das schon merkst. Mit einem NavigationService kannst du die Navigations-Logik aus den Views heraushalten.
Versuch dich doch mal mit dem oben genannten Stichwort. NavigationService + MVVM
Ich habe z.B. das hier gefunden:
https://marcominerva.wordpress.com/2020/01/13/an-mvvm-aware-navigationservice-for-wpf-running-on-net-core/

Gruß
Alf

Thema: Komplexe Objekte Vergleichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Biggi12

Wenn deine Klassen generiert worden sind, kann es sein, dass sie das Keyword partial vor dem class haben. Dann kannst du die generierte Klasse mit eigenem Code erweitern.

Ansonsten gäbe es da auch noch den https://www.nuget.org/packages/equalidator/.

Gruß, Alf

Thema: Coding Styles Horror
Am im Forum: Smalltalk


if (true) // wg. Scope innerhalb switch-case
{
    ...
}