Laden...

Forenbeiträge von chilic Ingesamt 2.121 Beiträge

09.08.2017 - 19:09 Uhr

ein Blick in die Doku der String-Klasse

Exakt. Die Fragestellung lässt annehmen dass der Fragesteller nur nicht weiß dass das was er sucht "String" heißt.
Dazu noch eine Ergänzung. C# bietet dir sehr sehr sehr ..... viel mehr an bereits vorhandener Funktionalität. Mach also nicht den Fehler und programmiere C++ Programme eins-zu-eins nach.

04.08.2017 - 16:50 Uhr

Ich persönlich mag diese Vorgehensweise aber nicht.

Gibt es einen bestimmten Grund dafür? Ein "ich mag nicht" ist eine seltsame Begründung um etwas nicht zu verwenden das genau für diesen Zweck gedacht ist.

02.08.2017 - 19:31 Uhr

Dann muss das Formular nicht wissen ob editiert wird oder eine neue Eingabe erfolgt. Es zeigt das im Eingabefeld an was gesetzt wurde. Wenn nichts gesetzt wurde bleibt es leer. Was dann mit dem ausgelesenen Wert passiert ist dem Formular auch egal.

Sofern es ein Datenobjekt gibt würde ich allerdings darüber nachdenken, das Formular mit dem Objekt aufzurufen. Es trägt dann die Daten aus dem Objekt in die Eingabefelder ein - leer oder gefüllt - und beim bestätigen wieder zurükck ins Objekt. Dann belässt man formularabhängigen Code im Formular.

02.08.2017 - 06:15 Uhr

Ganz nebenbei


     if (isNew)
        taskSwitch = true;

     taskSwitch = false;

Was ist taskSwitch nach dieser Methode? ... IMMER false!
Den selben Zweck erfüllt übrigens ganz simpel taskSwitch = isNew;

Ich bin der selben Meinung wie Sir Rufo.

Soweit ich das aber verstanden habe, ist die "gute Schule" objektorientierter Programmierung die, das eine Klasse immer nur eine Aufgabe (ein Task) erfüllen sollte und demnach ihre Member auf jenen (einen) Zweck hin ausgerichtet sein sollten.

In der Praxis wirst du merken dass du nicht immer alles zu 100% befolgen kannst was die Theorie rät 😉
Ein weiterer Grundsatz ist nämlich nichts doppelt zu machen. Also keine zwei identischen Forms zu erstellen. Wenn du das eine anpasst musst du das andere anpassen. Denkst du immer daran? Wahrscheinlich nicht.

Lege als Aufgabe fest: Das Form soll Userdaten eingeben lassen und je nach Vorgabe in einem neuen Objekt zurückgeben oder ein bestehendes ändern. Diese beiden sehr ähnlichen Dinge im selben Code zu erledigen kostet dich weit weniger Zeit und Aufwand um dich später erneut darin einzulesen, als Code doppelt zu schreiben.

30.07.2017 - 20:02 Uhr

Könnte es sein dass dein Projekt nicht neu erstellt wurde seit die Datei geändert wurde?
Es gibt ja diese höchst sinnvolle Funktion, bei nicht compilierbaren Dateien die letzte saubere Version zu starten. Ich hab die gleich abgestellt weil ich nicht weiß wozu ich das wollen sollte, aber evtl. liegts auch daran dass du einen Fehler im Projekt hast und dann ein älterer Stand debuggt wird.

29.07.2017 - 20:41 Uhr

Dann hat dieses Problem also zunächst gar nichts mit URL und Encoding zu tun. Wie du aus dem String eine URL machst ist eine andere Sache. Aber solange das reine Zusammensetzen nicht funktioniert brauchst du nicht beim anderen weitersuchen.

Zeig doch einfach mal wie du den String zusammensetzt und was dabei herauskommt. Ein Fragezeichen in einen String einbauen ist kein Kunstwerk. Wir sollte allerdings sehen was du da machst, sonst kann dir keiner weiterhelfen.

29.07.2017 - 18:45 Uhr

Das ist eine seltsam beschriebene Frage.
Hat das Problem mit Strings zu tun oder damit dass es eine URL ist? Das ist ein ziemlicher Unterschied.

%20 ist kein Leerzeichen. Es sind drei Zeichen die in einer URL als Leerzeichen interpretiert werden, irgendwann einmal. Vorher sind es die Zeichen Prozent, zwei, null. Die werden im String nicht als Steuerzeichen interpretiert.

Du schreibst "endet dieser immer an den Stellen an denen eines Zeichen als erstes genutzt wird."
Was bedeutet das? Wo siehst du wie der String endet?

Um geholfen zu werden musst du ein ein Beispiel zeigen. Wie setzt du den String zusammen (Code), was für ein String sollte herauskommen und was siehst du stattdessen?

16.07.2017 - 18:44 Uhr

Ja ok nicht als erstes und als letztes ist nicht das selbe 😃
Wir haben eventuell aneinander vorbei geredet. Ich dachte an die Struktur der Daten. Die ist für mich von Beginn an wichtig bzw. sie ergibt sich relativ schnell wenn man die Bedienung der GUI durchdenkt und Klassen designt und sie beeinflusst Aufbau und Bedienung einer Applikation an diversen Stellen.

Wie man das später abspeichert ist in der Tat erst eine Folge des bisher gesagten und braucht nicht der erste Schritt sein. Praktisch gesehen kann sich das immer wieder ändern und erzeugt dann nur unnötigen Aufwand. Aber die Überlegungen was wo einzugeben ist, was mit was wie zusammenhängt usw. halte ich schon für etwas über das man sich bald Gedanken machen sollte.

16.07.2017 - 18:14 Uhr

Dein ausgelagertes MHD bringt dir nichts. Ein Artikel zeig auf ein MHD. Mehrere Artikel können auf das selbe MHD zeigen, was aber Unsinn ist denn das MHD kannst du dann auch direkt beim Artikel eintragen. EIN Artikel kann aber nicht auf MEHRERE MHD zeigen, das ist was du willst?

Du musst den Artikel aufteilen. Einmal gibt es die unveränderlichen Stammdaten zum Artikel. Wie heißt er, woher kommt er, welcher EAN Code. Dann gibt es eine Tabelle mit dem Bestand. Ein Eintrag zeigt auf die unveränderlichen Stammdaten und enthält die Anzahl und das MHD.
Damit gibst du einmal an dass du Milch bevorraten willst. Diese Daten bleiben immer bestehen, auch wenn du keine Milch im Haus hast.
In der anderen Tabelle steht dann wie viel Milch du hast und wie lange die haltbar ist. Da kann es dann mehrere Einträge geben, 2 Pack Milch sind noch 3 Tage haltbar und 3 andere noch eine Woche.

Denke darüber nach wie du dein Programm bedienen willst. Dann fällt dir auf dass du nicht für jeden Pack Milch erneut Hersteller und alles sonstige eingeben willst. Du willst nur eingeben dass du soeben Milch gekauft oder verbraucht hast.

(davon abgesehen dass du das für eine private Voratskammer möglicherweise bald nicht mehr nutzen willst - dann ärgere dich nicht darüber 😉

Bleiben wir bei der Milch. Ich würde mir noch überlegen ob du wirklich den Hersteller mit angeben willst. Falls du mehrere Hersteller kaufst, hast du verschiedene Milchpakete. Da könnte es ausreichen zu speichern: Es ist Milch da.
Oder es kommt eine weitere Gruppe rein, die alles nach der Art der Ware aufteilt. Also Milch, Brot, Bier, Wurst, Seife .... und darunter gibts dann die einzelnen Hersteller. Das erleichtert die Suche ob du noch Produkt X kaufen musst, ganz egal von wem es ist.

Ist die Datenhaltung wirklich der letzte Schritt? Damit wäre ich schon des öfteren reingefallen, denn bei den Überlegungen zur Datenhaltung kommen bereits erste Denkfehler auf.
Man kann das natürlich zuerst auf Klassenebene tun, damit bildet man praktisch auch die Datenhaltung ab und legt schon die Struktur zu einem Großteil fest.

15.07.2017 - 23:59 Uhr

Steuerzeichen in per Drag&Drop eingefügtem Text werden wohl nicht ausgewertet. Ist auch nachvollziehbar, denn das Drücken einer Taste ist eine andere Art von Ereignis als wenn man dem Textfeld direkt sagt, hier hast du Text.

14.07.2017 - 18:25 Uhr

Sowas versucht man nicht unendlich oft bis es funktioniert, sonst legt man sein Programm lahm.
Ein Netzwerkzugriff kann schiefgehen weil keine Netzverbindung besteht, weil der Server down ist, weil die Resource nicht existiert, weil man falsche Daten übergeben hat usw.
Die Verbindung kann irgendwann wieder funktionieren, wahrscheinlich aber nicht in den nächsten wenigen Sekunden. Dass ein Server wieder läuft dauert schon um einiges länger und falsche Daten oder fehlerhafte Resourcen korrigieren sich nicht durch beständige Wiederholungen.

12.07.2017 - 05:56 Uhr

Prinzipiell gebe ich dir da schon recht. Aber wenn ich die Frage so lese, Benutzer geben Datenbankdaten selbst ein, das hört sich eher nach einem sehr kleinen System an das noch seinen Weg sucht. In dieser Phase wären solche Überlegungen sehr wichtig.

12.07.2017 - 05:53 Uhr

Was kriegt der, der diese Frage versteht?

Hast du ein Bild oder Geradengleichungen? Das macht einen fundamentalen Unterschied.
Wozu braucht man den Abstand?
Es sind auf beiden Seiten Linien, was soll man hier tun?
Was ist wenn die Linien horizontal verlaufen und es kein links&rechts gibt?

11.07.2017 - 18:36 Uhr

Der Query ist bei jeder Datenbank derselbe, die Leute müssen nur mit unterschiedlichen Daten arbeiten - aufgeteilt in Gruppe "Produkte" und Gruppe "Vertrieb".

Wenn ich das so lese hast du eventuell einen falschen Ansatz gewählt. Sowas nennt sich mandantenfähig. Da kann man durchaus alle Daten in einer Datenbank halten statt für jede Gruppe eine bzgl. der Struktur identische Datenbank aufzuziehen. Das ist Wahnsinn.

11.07.2017 - 12:36 Uhr

Ergänzend, wenn du schon unbedingt dein eigenes Format machen willst, dann lass doch wenigstens die überflüssigen Elemente weg, nämlich Anführungszeichen um die Elemente und das ; am Ende.

08.07.2017 - 12:36 Uhr

Freut mich dass ich nicht der einzige bin der neue Features gerne in einer bekannten Sprache sehen würde statt in jeweils einer eigenen neuen 😉
Influencer ist ein gutes Wort. Ständig kommt was neues raus und natürlich ist das neue dann das beste. Dass sich die Entwicklergemeinde dagegen nicht wehrt wundert mich.

06.07.2017 - 16:42 Uhr

Was passiert wenn ein Passwort eingestellt ist? Unbedingt ausprobieren.

25.06.2017 - 17:09 Uhr

die if könnte man in eine eigene Methode auslagern, die man immer nach einem if verlässt wenn man nicht weitermachen will. Dann hast du auf der ersten Ebene viele

if (...)
  return;
if (...)
  return;

hier passiert etwas

das macht es schon viel übersichtlicher als wenn du viele Einrückungsebenen hast.
Den Rest auslagern halte ich auch keineswegs für "müllen", denn irgendwo muss die Arbeit nunmal gemacht werden. Wenn du das in passende Funktionsblöcke auslagerst wird es verständlicher.
Du könntest auch prüfen ob du verschiedene Klassen draus machen kannst, dann kapselst du noch besser.

24.06.2017 - 12:35 Uhr

Würdest du diese Frage verstehen wenn du nicht wüsstest was es damit auf sich hat?

23.06.2017 - 14:19 Uhr

Ich würde den Ansatz überdenken. Es gibt Möglichkeiten um Teile eines Fensters transparent zu machen. Nutze lieber so etwas, dann brauchst du dir über den Hintergrund keine Gedanken machen.
Als Einstieg dafür habe ich gerade leider nur das Wort "Region", das Internet kennt sicher etwas passendes.

19.06.2017 - 22:35 Uhr

Moment! Wir sollten vom selben sprechen.

Standardantwort - ich habe nichts dagegen, aber....

Ja ist Standard. Zum Glück hab ich es nicht auch noch gesagt 😉 Mir gings nicht um das Modell sondern die Art es durchzusetzen. Ich finde den agilen Ansatz nämlich interessant. Daher würde ich ihn lieber mit Interesse statt Druck vermittelt bekommen. Wissen warum man etwas tut, motiviert bleiben statt Resignation. Kritik äußern dürfen was zugegebenermaßen sanfter passieren könnte als im verlinkten Beitrag, dadurch Abläufe verbessern statt immer wieder denselben Overhead zu machen. Jedenfalls nicht zu hören bekommen "tu was man sagt oder verschwinde".

Warum wehren sich viele gegen neues? Weil im beruflichen Alltag so vieles gemacht wird ohne den Grund zu kennen. Entweder wird keiner erklärt, oder niemand will einsehen müssen dass es keinen gibt. Überall ist das so, auch in der IT. Der Vorgesetzte schreit danach und wenns nichts bringt sind die Programmierer schuld. Davor scheut man sich.
Da MUSS man hinterfragen und filtern. Kritik und Fragen sind ein gutes Mittel um überflüssiges von sinnvollem zu unterscheiden. Gerade für den der die Dinge die er vorgibt nicht selbst anwendet. Das bringt Qualität in die Position.

Und was passiert: alle mit Schwerpunkt auf Agile werden schlichtweg abgelehnt.

Womöglich nur weil agil das neue Killwort ist das alle nur um sich werfen und vor lauter neu neu neu nicht mehr wissen wo vorne und hinten ist?

Ich selber nutze sehr gern einige Methoden und Konzepte, wenn es passt, aber ich würde deshalb nicht behaupten wollen, dass wir agile Softwareentwicklung betreiben.

Wert legen auf das was man macht, statt welchem Hype man folgt. Diese Einstellung gefällt mir! Das klingt nach Denkprozessen. Besser als hey Kunde wir machen jetzt agil, nein ich kann nicht erklären warum.

17.06.2017 - 23:33 Uhr

Wer heutzutage agile Entwicklung in Frage stellt, sollte doch mal überdenken ob er in der richtigen Branche arbeitet.

Auch auf die Gefahr hin dass du dich persönlich angegriffen fühlst...

Gerade diese Art mit einer Kritik umzugehen dürfte den Fragesteller darin bestärken dass agiles entwickeln tatsächlich nicht mehr bedeutet als fleißiges Häkchen setzen in den Verwaltungsbüros.
Warum kommen da keine Argumente die vom Gegenteil überzeugen?

Wenn ein daily Unsinn ist weil jeder nur das selber erzählt und alle der Meinung sind es reicht auch alle 2 oder 3 Tage, dann wird man nicht nochmal aus allem rausgerissen und hat nach dieser Zeit wenigstens etwas neues zu sagen, dann macht man es eben seltener und dafür produktiver. Problem? Außer für den Häkchensetzer, der soll dann eben drei Häkchen auf einmal machen.

Also wenn einer von meinen Entwicklern solche Äußerungen machen würde, würde ich ihm nahelegen seinen Job zu überdenken.

Sorry nochmal aber auch das muss raus. Lies dir mal den Artikel durch. Beachte Dinge wie Augenhöhe, unangenehme Fragen stellen, Experiment, etwas in Frage stellen (dürfen), an sich arbeiten und eigentlich alles sonstige was da steht. Dann hast du das nämlich schon mal nicht verstanden!
Von daher ganz großes Buuuh für diese Aussage! Wie war das gleich, wer sollte seinen Job überdenken?

Übrigens habe ich nichts gegen agile Methoden. Ich finde nur man sollte sie nicht mit der Peitsche rüberbringen wollen, sondern mit Argumenten.

13.06.2017 - 22:10 Uhr

So viele Verzeichnisse packt Windows? Man lernt wirklich nie aus 😃
Rein aus Interesse, hast du schon ausprobiert wie lange das dauert? Vielleicht ist es ein Trost, selbst wenn der Name keine Wildcards hätte müsstest du ja für jedes Verzeichnis erneut alles durchsuchen lassen. Da wird es mit zunehmender Anzahl an Tests effektiver alles einmalig einzulesen.

13.06.2017 - 22:02 Uhr

Ja so etwa. Ich finde static schöner als ein unnötiges Objekt zu erstellen.
Den Dreizeiler in der Add Methode könntest du noch sehr verkürzen.
Und Fehlerhandling wäre nicht schlecht, falls in einem Textfeld keine Zahl steht.

13.06.2017 - 05:46 Uhr

Denke auch daran dass du in deiner Methode Addieren einfach nur schreiben kannst

return W1 + W2 + W3 + W4;
24.05.2017 - 05:39 Uhr

Wo liegt der Sinn von so etwas? Außer dass jemand der so eine URL sieht nicht mehr weiß wohin sie führt, was ich aber eher als gravierenden Nachteil ansehe.
Ich persönlich mag so etwas gar nicht und kann auch nicht erkennen wozu es gut sein soll. URLs tippt heutzutage keiner mehr von Hand, die werden kopiert und eingefügt. Warum also darf der Nutzer nicht mehr sehen wohin es geht?

21.05.2017 - 15:37 Uhr

Ich kann nur vermuten, aber ReadToEnd hört sich an als würde es lesen bis nichts mehr zu lesen ist, sprich bis der Stream geschlossen wird, sprich bis dein Batch zu Ende ist. Erst dann gehts weiter.
Stattdessen willst du Zeichen einzeln aus dem Stream lesen, d.h. eine andere Methode suchen.

21.05.2017 - 08:25 Uhr

Visible ist eine Möglichkeit. Oder Show() aufrufen, was aber das gleiche macht wie Visible.
In dein ButtonClick muss jetzt hinein, dass das gewünschte Element Visible = true wird, oder du rufst Show() auf das Element auf.
Übrigens ein Button ist nicht aktiv, bzw. ist er es nur während man ihn drückt.

19.05.2017 - 17:00 Uhr

Ich bin auch der Meinung Codeleichen gehören weg. Wenn man etwas aus welchem Grund auch immer für die Nachwelt festhalten will, gehört es kommentiert so dass jeder weiß warum das da steht. Selbst das sollte aber einen Grund haben, wer programmieren kann weiß auch wie er sich etwas selbst macht wenn es denn wirklich mal nötig sein sollte.
Einfach auskommentieren lässt mehr Fragen offen als es hilft.

30.04.2017 - 11:23 Uhr

Hast du das Statement auch verstanden oder funktioniert es und du hoffst du musst das nie wieder ändern 😉
Ich würde da lieber eine handvoll mehr Zeilen schreiben, statt alles in eine zu packen.

28.04.2017 - 06:21 Uhr

Die Methode StartsWith() eines Strings kennst du?
Deine Frage ist mir überhaupt nicht klar, daher kann ich nichts weiter dazu sagen. Was soll wie passieren?

27.04.2017 - 06:01 Uhr

Meines Wissens unterstützt pdf die mehrmalige Verwendung eines Bilds. Es ist nur einmal in der Datei enthalten und kann beliebig oft vorkommen.
Wenn du wirklich pro Seite 10 kB mehr hast, könnte das das Logo sein das für jede Seite erneut ins pdf aufgenommen wird.
Nimm die Logos auf jeder Seite testweise raus, an der Größe des Ergebnisses siehst du dann ob diese Vermutung stimmt.
Was man dazu tun muss damit das so eingebunden weiß ich leider nicht. An irgendetwas muss iTextSharp wahrscheinlich erkennen dass das Bild jedes mal das selbe Objekt ist, statt immer ein neues.

23.04.2017 - 23:07 Uhr

Was soll es denn ausgeben wenn du nichts selektiert sondern Text von Hand eingegeben hast?
Dann unterscheide doch ob SelectedValue gesetzt ist oder nicht und nimm dann entweder .Text oder den SelectedValue.
Oder ich hab das noch nicht verstanden, dann erklär am besten nochmal was du vorhast.

23.04.2017 - 21:59 Uhr

ToString ist nicht ratsam. Das gibt dir immer irgendwas zurück, außer das Objekt ist null. Immer "irgendetwas" ist Unsinn.
In deinem Fall ist SelectedValue null weil bei einem frei eingegebenen Wert nichts vorgegebenes selektiert ist.
Lese direkt Combobox.Text aus.

21.04.2017 - 13:35 Uhr

Ein Denkanstoß.

Aus meiner Sicht wird um die ganzen Benennungen ein viel zu großer Hype gemacht. Es kommt immer drauf an wie sehr man etwas nicht tut oder zuviel davon tut. Sich verzetteln oder auch erfolgreich sein kann man auf verschiedene Arten.

Seitenweise nicht mehr wartbare Dokumente verfassen die später keiner mehr lesen wird, die alles mehrfach evtl. noch in verschiedenen Fassungen und Ständen enthalten, sind ebenso sinnlos wie ein Projekt in dem gar nichts festgehalten wird. Die wenigsten Kunden möchten einem planlosen Entwicklungsprozess zusehen, um dann Stopp zu rufen wenn gerade zufällig das herauskommt was herauskommen sollte.
UML mit all seinen Details die nur Insider verstehen ist genauso wenig hilfreich wie gar kein Bild oder keine Skizze.

Wissen was man macht und warum man es macht, das ist der Schlüssel zum Erfolg. Ist es nicht Nebensache wie es heißt und wie es im Detail aussieht?

16.04.2017 - 22:27 Uhr

Nein gibts nicht, lässt sich aber leicht selber machen.
string getValue(string[] array, int index)
Dann hast du beim Befüllen der Properties weiterhin nur je eine Zeile.

16.04.2017 - 22:25 Uhr

Mich wundert IsNullOrWhitespace auch. Text in einer Textbox ist doch nie null und auf Whitespace prüfen bringt auch gar nichts denn es gibt noch Millionen andere Eingaben die genauso unsinnig sind wie Whitespace. Prüfe mit Directory.Exists ob etwas ein gültiger Ordner ist.

Ich würde nach einer Prüfung mit return aus der Methode rausgehen.

15.04.2017 - 19:23 Uhr

Anerkennen sollte man dem Fragesteller dass er immerhin ganz hinten einen Punkt zustande gebracht hat 😃

10.04.2017 - 12:15 Uhr

GetFiles liefert dir alles, daher auch die Desktop.ini. Die liegt ja tatsächlich im Verzeichnis.

Entweder siehe Antwort von pinki, oder wenn du nicht "alles außer" sondern laut deiner Beschreibung eigentlich vielmehr "nur bestimmte" Treffer haben willst, kannst du auch alles rausfiltern was kein Bildformat ist. Sonst liegt mal eine Textdatei im Verzeichnis, dann fängst du wieder an die zu filtern.

09.04.2017 - 11:32 Uhr

Wie gesagt, was du in Load anlegst ist nur in Load verfügbar. Diese Variable gehört in die Klasse. Lies dich dazu in Klassenvariablen, Properties usw. ein

09.04.2017 - 08:52 Uhr

Wie "erstellst" du die Variablen?
Es kommt drauf an wo du die anlegst. Was in einer Methode angelegt wird ist in einer anderen Methode nicht sichtbar. Du brauchst dazu Instanzenvariablen oder Membervariablen.

23.03.2017 - 06:09 Uhr

Ich will wie gesagt, das sich die Location des panels, senkrecht nach oben geht.

Das passiert ja mit deinem gezeigten Code auch, wie du schreibst.

Du solltest vielmehr den Code zeigen der es wieder runter schiebt 😃 Den musst du natürlich erst mal identifizieren/finden. Hast du vielleicht Anker gesetzt, die das Panel immer wieder zurückschieben?

22.03.2017 - 19:52 Uhr

Was du brauchst sind vor allem Funktionen um erstens Bilder vom Screen zu machen und zweitens diese zu einem Video zu kodieren. Was MVVM und Prism dir hier besonderes leisten könnten weiß ich nicht. Prism kenn ich nicht, trotzdem liegt der Trick deines Vorhabens in den bereits genannten Punkten. Die sind beide nicht ganz einfach würd ich sagen.
Wenn dein Projekt nicht hauptsächlich einen Lerneffekt haben soll sondern du das komfortabel einsetzen willst, würd ich mir was existierendes suchen.

21.03.2017 - 18:19 Uhr

Solche komischen Fehler kommen mir bekannt vor. Auch mit DataGridView, auch wenn die Daten drin sich ändern. Meine damalige Vermutung war, es passiert wenn sich die Daten ändern und man währenddessen im Grid herum klickt. Vielleicht klickt man ein Item an an dessen Stelle im nächsten Moment keins mehr ist, oder es ändert sich im ungünstigen Moment. Und dann kommt etwas durcheinander.
Eine Lösung konnte ich nicht finden, war auch "nicht so schlimm" laut den Benutzern. Das löst nun nichts aber könnte dir beim Nachvollziehen helfen.

17.03.2017 - 13:35 Uhr

Du kannst ja schon den Nutzer darauf hinweisen dass er falsche Zeichen eingibt, ein - statt / als Trennzeichen und so weiter. Was ich aber nicht tun würde ist bestimmte Tasten sozusagen sperren, das hat einen seltsamen Effekt finde ich.

Wenn es um Suche geht, als Tip könntest du sowas machen.

  1. dürfen nur bestimmte Zeichen enthalten sein. + (für Landesvorwahl), Ziffern, Leerzeichen (weil jemand das vielleicht so eingeben mag) und / als Trennzeichen. Wenn was anderes vorkommt, Meldung und der Benutzer soll das korrigieren.
  2. Die Landesvorwahl musst du vereinheitlichen. Wenn jemand keine eingibt, muss die erste Ziffer eine Null sein. Die streichst du und setzt für Deutschland +49 davor. Den Standardwert musst du dir irgendwo her holen. Danach ein Leerzeichen.
  3. Dann die restliche Nummer entweder mit / zwischen Vorwahl (ohne Null am Anfang) und Nummer, oder ohne /. Leerzeichen alle rausnehmen.

Zum Suchen auch wieder die Nummer so aufbereiten, dann solltest du eine Nummer immer finden.
Wenn du es dem Nutzer ganz komfortabel machen willst, speichere das was er eingibt damit er es immer so sieht wie er es gewohnt ist. Und speichere zusätzlich die aufbereitete Nummer unsichtbar für den Nutzer, für die Suche.

16.03.2017 - 19:40 Uhr

Ich würde auf sowas komplett verzichten. Lass den Benutzer doch xyz123?!? eingeben und erklär ihm dann in einer Fehlermeldung dass es falsch ist und warum.
Woher soll der Nutzer wissen warum eine Taste plötzlich nicht reagiert? Um das selbst rauszufinden braucht er länger als wenn du ihm einen gezielten Hinweis gibst.

Mit Prüfungen wie max. Länge wette ich dass du irgendwann ein Problem kriegst, weil eine Nummer eben doch länger ist als du erlaubst.

15.03.2017 - 07:14 Uhr

Ein bisschen Starthilfe fürs Verständnis.

in einen Enum kann man ja zB string und int zusammen verwenden.

Äh... nee. Ein enum ist eine Zahl die man durch einen sprechenderen Text ersetzen kann und zudem kann man sie noch gruppieren.

e_PlayerInfo

Sieh dir die Konventionen für C# Namensgebung an. Auch wenn man sich nicht komplett dran halten mag, sollte man wenigstens nicht zu sehr davon abzuweichen, nicht zuletzt um mit Fremdcode zurecht zu kommen.

// hier soll zB die Liste playerInfo bei pID = playerid

Auch wenn das noch kein Satz mit Aussage war 😉 ich nehme an hier soll die Liste verwendet werden. Was passiert wenn du hier schreibst playerInfo.Add(playerid)? Sollte natürlich innerhalb der selben Klasse sein in der auch die Liste deklariert wurde.

15.03.2017 - 07:03 Uhr

Was die Sache unbedienbar macht, es soll ja nicht höchstens 20 herauskommen, da könnte man dann bei jedem Slider bei 0 anfangen und es müsste nichts korrigiert werden, sondern genau 20. Daher wird sich bei jeder Änderung ein anderer Slider (oder mehrere) bewegen. Das macht es unmöglich für den Bediener, eine bestimmte Kombination einzustellen ohne genau zu wissen was er zuerst und was er zuletzt einstellen muss.

Daher mein Tip, man kann die Logik zwar spaßeshalber überlegen, sollte sie dann aber nicht umsetzen. Das ist zum Beispiel wie bei numerischen Eingabefeldern die nur eine Zahl akzeptieren und alles andere ignorieren. Ich möchte nicht wissen wie viele Hotlines schon beschäftigt waren herauszufinden dass Capslock aktiv ist 😃

14.03.2017 - 20:51 Uhr

Bei RadioButtons ist klar was passieren soll. Der gedrückte ist gedrückt, alle anderen nicht.
Wie soll in deinem Fall ausgeglichen werden? Man kann schon irgendwie rumrechnen, nur ob das dann auch den Sinn des Benutzers trifft?

Wenn du wirklich bei einem automatischen Ausgleich bleiben willst, so schlimm scheint mir der nicht zu sein. Geh alle Slieder durch die gerade nicht bewegt wurden und setze die der Reihe nach höher oder tiefer. Fang beim ersten an und setze ihn auf den maximal/minimal möglichen Wert. Wenns noch nicht reicht, nimm den nächsten.

Ich kenne den Hintergrund der Anwendung nicht, aber ich würde überlegen ob ich überhaupt Gedanken in eine Automatik stecke - oder es gleich ganz lasse.
Lass lieber den Benutzer zunächst irgendetwas einstellen, zeig ihm die Summe an und lasse ihn erst dann weitermachen wenn er selbst die Summe auf 20 korrigiert.
Stell dir vor du willst einen Slider ändern, weißt welchen anderen du dazu ebenfalls ändern musst, und dann kommt dein Programm in die Quere und verstellt den falschen. Das ko*** dich dann nur an.

10.03.2017 - 06:31 Uhr

"erst mal testen" ist eine gute Idee. Um alles bisherige hinzuwerfen und mich einzuschreiben würde ich aber noch weiter testen als 4 Tage 😉
Wenn dann alles passt und du Spaß dran haben wirst, warum nicht? Ein Leben lang etwas zu machen das man nicht (mehr) machen will ist ziemlich doof, dann doch lieber etwas neues beginnen auf das man Lust hat.

Bedenke dass Informatik nicht nur programmieren ist. Es steckt "matik" drin, so wie in Mathematik... (Das war ein Wink)

Als ihr angefangen habt, seid ihr da auch mal wo hängen geblieben, was eigentlich vermeintlich ganz einfach ist?

Natürlich, das bleibt nicht aus.