vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Prozeduren in eigener Klasse auslagern 
Autor: Bismosa
Datum: 25.08.11 10:39

Hallo!

Nachdem ich nun langsam völlig den Überblick in meinem Programm verloren habe, muss ich doch mal dringend anfangen meinen Code aufzuräumen. Daher beschäftige ich mich derzeit genauer mit Klassen. (Ja...das sollte Grundwissen sein, aber ich versuche schrittweise weiterzukommen.)

Ich habe im Hauptformular sehr viele Prozeduren. Ein Beispiel:
    Private Sub Öffnen()
        Me.Cursor = Cursors.WaitCursor
        TSProgressBar.Visible = True
        TSLblInfo.Text = "Es wird gearbeitet..."
 
        Dim doc As PDMWorks.PDMWDocument
        doc = Connection.GetSpecificDocument("c:\Test.slddrw")
 
        'Als Datei Speichern
        Try
            doc.Save(Path.Combine(TempVerz, ProgName))
        Catch ex As Exception
            'MsgBox(ex.Message)
        End Try
 
        '.....
    End Sub
Das ist z.B. eine Prozedur, die ich mehrfach benötige. Hier wird nur etwas ausgeführt und nichts zurückgegeben.
Nun dachte ich, ich kann mir z.B. eine Klasse Erstellen, in der ich alle Prozeduren, die mit der Datenverwaltung zu tun haben reinpacke. Soweit eigentlich nicht schwer.

Ich erstelle eine Shared Sub und übernehem sämtliche Variablen aus Form1:
Public Class Dateioperationen
    Public Shared Sub Öffnen
        Form1.Cursor = Cursors.WaitCursor
        Form1.TSProgressBar.Visible = True
        Form1.TSLblInfo.Text = "Es wird gearbeitet..."
 
        Dim doc As PDMWorks.PDMWDocument
        doc = Form1.Connection.GetSpecificDocument("c:\Test.slddrw")
 
        'Als Datei Speichern
        Try
            doc.Save(Path.Combine(Form1.TempVerz, Form1.ProgName))
        Catch ex As Exception
            'MsgBox(ex.Message)
        End Try
 
        '.....
    End Sub
Hier muss ich jetzt immer wieder Variablen aus der Form1 aufrufen.
Ich denke dies ist aber eine sehr unsaubere Lösung, da ich diese Klasse nur in diesem Projekt benutzen könnte.
Ich kann natürlich auch alle Variablen immer mitgeben:
Public Shared Sub Öffnen(ByVal TempVerz As String, ByVal ProgName As String, _
  ByVal Dokument As PDMWorks.PDMWDocument, ...)
Das wird aber auch viel doppelte Tipparbeit.

Gehen würde das auch über properties. Wobei dann sichergestellt werden muss, dass auch alle Properties vergeben wurden. Wie kann man das machen?
Wie rufe ich die Prozedur dann auf? Über eine readonly property und einer Funktion?

Die Manipulation der Form sollte denke ich auch in der Prozedur in Form1 erfolgen. Erst dann der Aufruf.

Wie gehe ich so etwas jetzt am besten an? Wie würdet ihr das machen? Soll ich für jede Prozedur eine eigene Klasse schreiben? Oder ruhig alle ähnlichen in eine packen?

Gruß
Bismosa
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Prozeduren in eigener Klasse auslagern2.488Bismosa25.08.11 10:39
Re: Prozeduren in eigener Klasse auslagern1.573CLL25.08.11 14:01
Re: Prozeduren in eigener Klasse auslagern1.318Bismosa25.08.11 16:13
Re: Prozeduren in eigener Klasse auslagern1.531ModeratorFZelle25.08.11 21:05
Re: Prozeduren in eigener Klasse auslagern1.587Bismosa26.08.11 10:03

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel