Suchergebnisse

Suchergebnisse 1-13 von insgesamt 13.

  • Benutzer-Avatarbild

    Da reicht mir schon der Code, da brauch ich gar nicht Dein Projekt runterzuladen. Es gibt 2 Möglichkeiten. Wenn Du in Form2 nur eine Zeile des tDS bearbeiten willst, dann übergib die an Form2. Wenn es das ganze tDS sein soll, dann ... tja, 3x darfste raten. Richtig! Du übergibst das gesamte tDS, so wie Du es für die Testklasse in Zeile#74 auch gemacht hast. Denn Form2 ist wie die Testklasse doch auch nur eine Klasse. Das mal ganz grob für den Abend. Morgen geh ich (vielleicht) noch ins Detail, f…

  • Benutzer-Avatarbild

    Wenn Du tatsächlich nur schreibst VB.NET-Quellcode (5 Zeilen) dann geht das deshalb nicht, weil da eine Zeile nicht mehr drinsteht, die für Formulare sehr wichtig ist und normalerweise automatisch hinzufegügt wird: InitializeComponent. Ohne die wird die Form2.Designer.VB nicht vollständig aufgerufen und das führt auch schon zur Designzeit dazu, dass Du nicht mehr vernünftig arbeiten kannst. Weil VS jenes New und normalerweise auch InitializeComponent aufruft, um das Formular im Designer anzuzeig…

  • Benutzer-Avatarbild

    Stop. Meine Frage sollte lauten: Warum benutzt Du VB.NET-Quellcode (3 Zeilen) und nicht stattdessen einfach nur VB.NET-Quellcode (1 Zeile) Dass Du es so machen solltest, nämlich mit dem Using, ist richtig. Nur weißt Du auch, warum das richtig ist?

  • Benutzer-Avatarbild

    OK, exc-jdbi war schneller. Das wichtigste ist drin - auch wenn ich den Sinn der Form-Übergabe mittels Me nicht verstehe. Es reicht doch, das tDS zu übergeben. btw: Warum eigentlich ByRef in Public Sub New(ByRef _frm1 As Form1)? Form1 ist doch ne Klasse, da bekommt man doch bei ByRef und ByVal das Gleiche. Oder steh ich grad auf'm Gartenschlauch?

  • Benutzer-Avatarbild

    Nee, keine Sorge. Löffelmann arbeitet sauber: Seite 549/550: VB.NET-Quellcode (3 Zeilen) Und ab Seite 724 hat er extra ein Kapitel dafür: »Formulare ohne Instanziierung aufrufen«, wo es darum geht, dass sowas wie Form2.Show möglich ist, aber er erklärt auch genau, was da wirklich im Hintergrund passiert. Der Rest des Buches ist diesbezüglich auch sauber. @exc-jdbi: Kein Thema, ist ja hier kein Exklusivrecht, in diesem Thread zu schreiben. Ich erhebe keinen Anspruch auf alleinige Erklär-Bär-Rolle…

  • Benutzer-Avatarbild

    Genauso wie aus Form1*. Aber Achtung! Geht es Dir um TestClass als Klasse oder als Klasseninstanz? Denn Form1* hat seine eigene TestClassinstanz. Auf die kann Form2* natürlich nicht einfach so zugreifen. Wo kämen wir denn da hin? Das würde der Kapselung in der OOP widersprechen. Also gibt es mehrere Möglichkeiten:- Form2* kann also entweder seine eigene TestClass-Instanz erstellen; damit schwirren mehrere Instanzen rum (eine in Form1*, eine in Form2*) - Form1* kann bei Erzeugung von Form2* seine…

  • Benutzer-Avatarbild

    Der erste Weg (jeder hat seine Instanz) ist meist nicht so prickelnd. Du willst bestimmt das selbe TestClass-Objekt in beiden Formularen bearbeiten. Daher nur Weg 2 und 3. Weg 2 hingegen führt dazu, dass Form2 von Form1 pauschal dessen TestClass-Instanz bekommt. Und zwar egal, ob Form2 die jetzt nun wirklich braucht oder nicht. Es ist ein bequemer Weg, der die Gestaltungsmöglichkeiten erweitert. Er hat aber einen Nachteil. Wenn es nicht mehr nur um ein Objekt geht, sondern und 10, 20, 100, dann …

  • Benutzer-Avatarbild

    Nun, angenommen Du hast Folgendes: VB.NET-Quellcode (25 Zeilen) Dann passiert nach Erzeugung und Änderung des TCI-Testintegers in Form2 was mit dem TCI-Testinteger in Form1? Richtig. Gar nix. Da TCI-TestClass ein anderes Objekt ist als TCI-TestClass in Form1. Das ist das gleiche wie mit den DataSets. Nur weil jedes Formular sein eigenes Objekt namens DataSet1 hat, ist es nicht automatisch das selbe, sondern (ganz zum Anfang nur) das gleiche. Es sind eben voneinander unabhängige Objekte. Ändert m…

  • Benutzer-Avatarbild

    Ja, scheint auf den ersten Blick zu passen. Jetzt wäre noch ein weiterer Schritt möglich (aber nicht zwingend). Derzeit hast Du auch zur Designzeit leere DGVs. Wenn das in Deinem Sinn ist, dann ok. Ich binde meine DGVs gerne schon zur Designzeit an das DataSet. Dann sehe ich die Spalten schon, kann an denen rumbasteln und es mir schön einrichten. Dann weiß ich ungefähr, was während der Laufzeit auf mich zukommt. Das kannst Du auch, wenn Du willst: Wähle im Menü Ansicht -> weitere Fenster -> Date…

  • Benutzer-Avatarbild

    Das wäre Weg 2, ja. Weg 4 hatte ich in dem anderen Thread erwähnt, aber hier noch nicht, da vergessen: der globale-Variable-Ersatz: Form1 übergibt sein tDS ganz zum Anfang an ein Modul. Dieses nimmt es entgegen und packt es in ein moduleigenes tDS-Objekt. Dieses moduleigene tDS-Objekt wird dann überall im Projekt verwendet, auch sonst in Form1 (außer eben in der Erstzuweisung): VB.NET-Quellcode (17 Zeilen) Jetzt kann von quasi überall her mit GlobalTds auf eben jenes zugegriffen werden, ohne das…

  • Benutzer-Avatarbild

    Set ist ja ein Teil der Property (Zeile#9). Dieses Set wird im Formularcode nicht direkt aufgerufen, sondern mit GlobalTds = Me.DataSet1. Das ist das Besondere an Properties. Werden beim Coden wie eine normale Variable verwendet, es läuft aber mehr im Hintergrund ab. Propertys sind Dir bekannt?

  • Benutzer-Avatarbild

    Wie bereits erwähnt: Deine Screenshotzeile#32 ist falsch. Da kommt rein: GlobalTds = Me.DataSet1

  • Benutzer-Avatarbild

    VB.NET-Quellcode (9 Zeilen) Zeile#3 kapier ich nicht. Die For-Schleife an sich auch nicht. Mein Vorschlag: Probier erstmal ein paar Tage das so, wie Du es hast. Dann schau Dir z.B. dieses Video und später noch den Thread zu den DBExtensions an, dann entscheide selbst.