Suchergebnisse

Suchergebnisse 1-30 von insgesamt 106.

  • Benutzer-Avatarbild

    Guten Morgen ihr lieben In den letzten ca. anderthalb Jahren habe ich ein Programm erstellt, welches ich für alles verwenden kann, was man bei mir (und meiner Schwester) im Zooladen mit dem PC machen kann. Da der genaue Funktionsumfang für diesen Post nicht relevant ist, lade ich nur mal ein Bild mit hoch (von einem der 4 Programme innerhalb der Solution), außerdem lade ich noch ein Bild des aktuellen DataSets hoch. Das Problem ist, dass dieses Projekt eines meiner ersten war. Die Ausführung des…

  • Benutzer-Avatarbild

    Edit: sorry, habe am Handy getippt. Autokorrektur ist an, wiean sieht... Zu 1. @VaporiZed ja du hast Recht. VS2019 hab ich drauf. Aber dann kann ich's ja aktualisieren, wenn ich Lust hab. Oder ich lasse es sein. Zu 2. @VaporiZed Ich habe vor ein komplett neues Programm zu erstellen, da ich zuviel Angst vor Datenverlust habe und jederzeit am alten weiter ändern möchte, wenn nötig. Wenn das neue Programm das fertig ist bastel ich mir einen Import und fertig. Dann werde ich es Deutsch benennen. Wah…

  • Benutzer-Avatarbild

    Ich finde all diese abkürzenden Namen irgendwie schlimm. Wobei mir Zooonator auch gefällt. Aber ich habe das Projekt nun Theo genannt. Wofür das steht muss ich mir noch überlegen, aber den Namen finde ich schön Ich habe nun einen allerersten Ansatz (ohne große Optik und Funktion). Eine Frage zum Usercontrol habe ich aber noch. Wenn ihr beide sagt ich soll ein TabControl mit UCs bestücken, dann ja wahrscheinlich im Designer (ich male das UC nun aus der Not heraus im Code auf die Form). Warum hier…

  • Benutzer-Avatarbild

    Danke @VaporiZed Ich glaube ich habs kapiert. Hier zur Sicherheit nochmal mit meinen Worten. Auf der SubForm erstelle ich eine MainBS, ohne, dass ich (im Designer) DataMember und DataSource angebe.null Das passiert in deinem Code (Datenweitergabe V2) in Zeile 39: Me.BsTds.DataSource = GetType(Datenweitergabe.Tds) Dann erstelle ich die Bindingsources, die ich brauche - deren DataSource ist meine MainBS und der DataMember ist das, was eben angezeigt werden soll. Beim Aufruf von Form oder UC - oder…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „Ich glaube nicht, dass das eine große Performancerelevanz hat. Aber probier es und berichte.“ Nunja. Aktuell habe ich auf der FrmMain ein TabControl und ca. 5.500 Zeilen Code in dieser Form. Performance Probleme gibt es keine. Also vermute ich, dass ich keinen Unterschied feststellen kann, bzw. der Unterschied so marginal ist, dass er in der Praxis irrelevant ist. Mir geht es um die Sauberkeit des Codes. Zwar habe ich ihn mit UCs Klassenweise getrennt, aber getrennt habe ic…

  • Benutzer-Avatarbild

    OK das leuchtet mir ein. Rätst du mir denn eher bei meinem Vorhaben zu bleiben. Also den Code (mit einigen - notwendingen - Verbesserungen am Code selbst) in UCs Auslagern, aber (erstmal) einen großen Teil der Business Logik in eben diesen UCs zu lassen. Dann aber mit dem Ziel die SRP Richtlinien? später zu erfüllen. Oder das ganze von Anfang an "korrekt" zu machen? Mein Ziel ist es am Ende ein Programm zu haben, welches ich für Geld anbieten könnte (was ich in keinster Weise vorhabe). Es soll n…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „(GetType!) der Datentyp“ Ouch. Sorry! Ich hab ja die Antwort auf meine Frage mit "GetType" selbst in den Code geschrieben Also befasse ich mich jetzt erstmal ernsthaft mit CCD (da kann ich ja bestimmt trotzdem schon was mitnehmen) und halte an meinem Plan fest. Ich kann ja evtl. schonmal anfangen aufwendige Aufgaben (z.B. das Exportieren auswählbarer Spalten aus dem Dts) "auszulagern". Aber das wird sich ja beim Programmieren ergeben. Hattest du schon Zeit über meine Soluti…

  • Benutzer-Avatarbild

    OK, alles kapiert. Ich mach mich mal ans Werk. Wenn meine Adressverwaltung fertig ist gebe ich laut, und dann darf gemeckert werden Allerdings habe ich mir - nach dem Lesen der CCD Seite - (in Gedanken) das orangene Armbändchen mal wieder in die Schublade gelegt und mir das rote angelegt - Stichwort IOSP... Zitat von VaporiZed: „Oder meinst Du Clean Code von Uncle Bob“ das meine ich. Finds ganz angenehm echte Bücher - ohne beleuchteten Hintergrund - in der Hand zu haben. Ich glaube das könnte mi…

  • Benutzer-Avatarbild

    Ich muss doch nochmal nerven. Meine im Designer erstellte UserControl heißt UCAdressen. Wenn ich diese nun auf die Form ziehe, würde ich sie dort auch UCAdressen nennen. Der Designer erstellt aber automatisch den Namen UCAdressen1. Ich kann dann aber in UCAdressen umbenennen. Darf ich das? Oder gibt es später Probleme, wenn die Instanz auf der Form genauso heißt, wie die UC selbst? Und wenn ich in der UC etwas ändere, muss ich das Projekt neu erstellen, die alte UC von der Form löschen und die n…

  • Benutzer-Avatarbild

    Das ist nix besonderes, weil ich das Control Button nicht gemacht hab. Das ist aber wohl auch der Einzige unterschied

  • Benutzer-Avatarbild

    So ihr lieben. Nun gibt es was, wo sich das drübergucken lohnt. Die Adressseite ist soweit fertig - inklusive Emailversand. Ich würde nur noch den Text auf den meisten Buttons durch Bildchen ersetzen - aber das macht es ja für euch eher schwieriger, deswegen spar ichs mir (erstmal). Für den Emailversand benötige ich natürlich Emailadressen, welche im DataSet [verschlüsselt] gespeichert werden. Damit ich jetzt nicht zusätzlich eine SettingsPage erstellen muss (und wir 2 Baustellen haben), erzeuge…

  • Benutzer-Avatarbild

    Jo. Den Logikfehler und die Rechtschreibefehler habe ich korrigiert. Zur IO.CreateDirectory Zeile habe ich mir gedacht, dass das Auslagen einer einzigen Zeile Code in eine Methode, die ich nur einmal Aufrufe, gegen das KISS Prinzip verstößt. Aber wenn dem nicht so ist, änder ich das natürlich. Wenn du wieder Zeit hast, wäre es ein Traum, wenn du dich weiter mit dem Code befassen könntest. Ich habe wie gesagt überhaupt keine Eile.

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „. Da widersprichst Du Dir aber selbst: mit LoadDts und SaveDts - das sind jeweils auch Einzeiler.“ Das ist lustig. An diesen beiden Stellen war mir ganz klar, dass ich hierfür eine Methode brauche. Bei der Prüfung auf den Datenordner war mir klar, dass ich das nicht brauche (obwohl das in meiner Welt ja nichtmal ein Einzeiler war). Keine Ahnung, was bei mir falsch läuft :o) Ist jetzt auf jedenfall geändert. Zitat von VaporiZed: „bitte die empfohlenen VS-Einstellungen verwen…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „ByRef solltest Du vermeiden“ Magst du mir noch erklären warum? Zitat von VaporiZed: „Lüge (ich bin da mal bei der Wortwahl radikal)“ damit kann ich umgehen Umbenennungen sind aber noch nicht erfolgt, damit wirds im Folgenden wohl leichter. Umbenennen werde ich dann vorm nächsten hochladen, Ich habe noch nie eine Klasse in dieser Form erstellt, aber ich habe mich jetzt mal rangemacht: Vorab eine Frage: VB.NET-Quellcode (10 Zeilen) Macht der Auskommentierte Code exakt das gle…

  • Benutzer-Avatarbild

    Ja. IsEmpty ist wohl verständlicher als Isntnull... Sollte ich denn (in der Sub Sendmail) die Prüfungen auf Korrektheit der Emailadresse, und Vorhandensein von Betreff und Nachricht in die Klasse EmailEinstellungen auslagern? Dann hätte ich immerhin schonmal den Code etwas getrennt Die Form wäre dann zumindest schonmal nicht mehr dazu da die vom User eingegebenen Daten zu validieren. Oder sollte die Prüfung der Daten eher zur Eingabe gehören? (also auf dieser Form bleiben)

  • Benutzer-Avatarbild

    OK, dann hab ich erstmal wieder genug zu tun Ich lade neu hoch, wenn ich durch bin. Könnte aber etwas dauern - je nachdem wie lange meine Suche nach Tupel dauert.

  • Benutzer-Avatarbild

    SO, ich habe soweit alles umgesetzt. Die Benennung der Mailsenden Geschichte ist nun komplett anders. Durch den Button Klick auf Email senden wird die Sub ShowMailForm aufgerufen. Die geöffnete Form nennt sich nun frmEmailDaten Ein Klick auf den dortigen versenden Button ruft ValidateMailData auf und im Anschluss wird die Sub Sendmail aufgerufen. (Das finde ich auch beim nochmaligen Niederschreiben hier Sinnvoll - ein gutes Zeichen ) Die Validierung der Daten erfolgt nun in der Mailklasse. Außer…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „Aber es ist Dein Code.“ Aber die Erklärung hat mir gefallen Werde ich also umändern (dafür lade ich aber nicht extra neu hoch) edit: @VaporiZed die Subnamen in der frmEmailDaten habe ich gerade geändert. Mir ist aber aufgefallen, dass ich auf der UCAdressen das gleiche veranstaltet habe. Also falls du drüber stolperst, den Namen der Subs AddressNew, AddressCopy, usw. habe ich auch angepasst. edit2: (gelöscht) Edit3 Ich habe meinen zweiten edit Mal entfernt. Dieser enthielt …

  • Benutzer-Avatarbild

    So ihr lieben. Nachdem ich angefangen habe mich mit einem Buch zu beschäftigen, habe ich meinen Code überarbeitet. Ich bin alle Subs durchgegangen und behaupte nun, dass sämtliche Namen (Subs, Funktionen, Variablen), etc. sinnvoll sind. Außerdem habe ich sämtliche Kommentare aus meinem Code entfernt, denn ich behaupte darüber hinaus noch, dass dieser ist nun selbst erklärend und gut (zumindest für meinen Wissensstand) ist. Bitte gebt mir mal Rückmeldung, ob ihr das auch so seht, oder ob noch Ste…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „Danach ist _Mail hinüber und nicht mehr nutzbar. Du erstellst sie sonst nirgends.“ verstanden. Zitat von VaporiZed: „Zugriffe auf implizite Form-Instanzen von außen (frmHaupt.StatusStripTextLabel.Text = "Email wird versendet") ist für mich immer ein Dorn im Auge.“ 1. Bedeutet das ich brauche ein Event auf der MainForm (auf der das StatusStrip ist)? Oder macht man das anders? Zitat von VaporiZed: „Catch ex As Exceptio“ Den Beitrag habe ich gelesen und Verstanden. Aber beim M…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „1. Es reicht, wenn Du das Form als Parameter an die Modulmethode übergibst und ggf. in einer Modulvariable zwischenspeicherst.“ Sorry, aber ich glaube das verstehe ich falsch. Im Form Load Event der Hauptform übergebe ich die Instanz der frmHauptform an die UCAdressen? Dann müsste ich aber doch eben diese Instanz durchschleifen. Also als Modulvariable in UCAdressen speichern, diese dann der frmEmailDaten mitgeben und sie dann If TryToSendMail(MailData) Then Me.DialogResult …

  • Benutzer-Avatarbild

    Ey sorry. Aber ich scheitere daran... Meine Hauptform habe ich wie folgt angepasst: VB.NET-Quellcode (11 Zeilen) Nun versuche ich das Event von der frmEmaildaten aufzurufen. VB.NET-Quellcode (3 Zeilen) Aber die beiden Events kennt er nicht. Ich habe ein Tutorial von @RodFromGermany gefunden. Dort heißt es ich muss die Form auf der ich das Event feuere wie folgt instanzieren: VB.NET-Quellcode (1 Zeile) Aber das bekomme ich nicht auf mein Projekt umgemünzt. Denn ich brauche ja irgendwie eine WithE…

  • Benutzer-Avatarbild

    Ich habe mir einiges angesehen. Hier sind diejenigen drei, die ich als "am hilfreichsten" fand: Der Thread von @RodFromGermany Dialoge: Instanziierung von Forms und Aufruf von Dialogen außerdem ein Utube Video: youtube.com/watch?v=_GZ-Iy6Qggo und den Thread vom @ErfinderDesRades vb-paradise.de/index.php/Threa…?postID=844635#post844635 Wenn das SubForm die Events zur Verfügung stellt, hab ichs ja genau falsch herum. Mein Denkfehler ist mir aber soweit klar. (Die Subform muss die Events zur Verfüg…

  • Benutzer-Avatarbild

    OK das sollte ich hinbekommen. Aber wie löse ich das Problem, dass die Hauptform das Usercontrol nicht aufruft? Kann ich da im frmHaupt.Load Event einfach eine Public Instanz der UCAdressen erzeugen?

  • Benutzer-Avatarbild

    Ohja, sorry. Muss mich erst an das Verhalten der Usercontrol gewöhnen.... Also ich habs jetzt hinbekommen, aber ich glaube das ist doof: VB.NET-Quellcode (17 Zeilen) VB.NET-Quellcode (12 Zeilen) VB.NET-Quellcode (8 Zeilen) Nun habe ich aber das HideEvent nur, wenn der Emailversand erfolgreich war If TryToSendMail(MailData) = True. Ich müsste das Event also noch im frmEmailDaten_Closing Event ausführen und für den Fall, dass TryToSendMail False ist. Edit: bzw. wenn der User die Form schließt, Clo…

  • Benutzer-Avatarbild

    Angezeigt werden soll der Strip, wenn der User auf den Button senden klickt. Bisher (frmEmailDaten --> ButtonSendenKlick --> ValidateMailDataAndSend --> TryToSendMail) Verschwinden soller, wenn: - wenn die Email erfolgreich versendet wurde Bisher (frmEmailDaten --> ButtonSendenKlick --> ValidateMailDataAndSend --> TryToSendMail --> Mail.SendAsync --> SendCompletedEvent) - wenn beim Mailversand ein Fehler aufgetreten ist (Catch Block) Bisher (frmEmailDaten --> ButtonSendenKlick --> ValidateMailDa…

  • Benutzer-Avatarbild

    Ich habe meine Antwort vor deinem Edit verfasst. Also bei der Benennung gehe ich mit (diesmal ohne zu murren :o) Aber: Zitat von DerSmurf: „Edit: habs gerade mit Messageboxen getestet. Kann es sein, dass du hier einen Denkfehler hast? Das Event in der Sub ValidateMailDataandSent auszuführen geht nicht. Es wird ja sofort gefeurt, nachdem die Sub TryToSendMail abgearbeitet ist. Aber dann ist ja die Mail noch nicht unbedingt versendet. Das passiert ja asynch im Hintergrun, wärend der Code ja einfac…

  • Benutzer-Avatarbild

    Also zunächst muss ich dich mit deinen eigenen Waffen schlagen (und das ist natürlich nur humorvoll gemeint). Zitat von VaporiZed: „ClsEmailSenden.TryToSendMail“ Warum um alles in der Welt hat das Ding ein Präfix? Ich finde normale Klassen sollten nun wirklich kein Präfix haben! So. Ich musste eben Shared googlen. Habe verstanden was das macht. Aber letzlich habe ich jetzt statt eines Moduls eine Klasse. Also ein anderes Dingen, wo ich meinen Code deponiere. Wo ist der Vorteil einer Klasse gegen…

  • Benutzer-Avatarbild

    Zitat von VaporiZed: „Das mit Cls war tatsächlich nur für Dich,“ Hab ich mir gedacht. Aber ich muss ja auch ein bisschen stänkern Zitat von VaporiZed: „Probier mal, das Start-Event nicht mit Handles, sondern auch mit AddHandler anzubinden.“ Das funktioniert astrein (siehe letzter Post, letzter Code). Ich verstehe nur nicht, warum VB.NET-Quellcode (2 Zeilen) nicht funktioniert. Denn wenn ich die Erklärung von Shared richtig verstanden habe, gibt es von Emailsenden (Umbenennung nehme ich vor) nur …

  • Benutzer-Avatarbild

    OK. Nehme ich einfach so hin. Da ja jetzt aber alles (mein Code) in Ordnung zu sein scheint, würde ich gerne zum nächsten (und vorerst letzten Punkt) kommen. Das Abfangen von Tasten Ich würde gerne folgende Tasten abfangen: Strg + K - zum kopieren eines Artikels Escape - zum löschen der Suche Backspace - löschen des letzten Zeichens in der Suche TextBox (wenn diese keine Fokus hat) Enter - zum öffnen eines Adressbucheintrags Entfernen - zum löschen eines Adressbucheintrags alle anderen "normalen…