vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 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
Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 01.09.12 10:41

Hi Leute,
Ich komme eigentlich aus der C(ohne +) Ecke, das mal vorne weg.

Zur Steuerung meiner Wakü habe ich mir ein 5¼ Einschubgerät gebaut,
das wird über einen FT232R via USB angesprochen, das klappt schon ganz gut.
Da der Code in meinem VB Programm langsam unübersichtlich wird, muss ich
Funktionelle Blöcke in andere Dateien im Project auslagern.

Es scheint das ich dabei irgendwas falsch mache, VStudio findet beim Compilieren
die SUBs nicht mehr, die ich aufrufen will.

Einen INCLUDE Befehl gibts hier ja nicht, wie zur Hölle geht das dann?

Wäre schön wenn mir, altem Sack, das so erklärt werden könnte, das ich auch verstehe....

Gruß
Stephan

Beitrag wurde zuletzt am 01.09.12 um 10:44:15 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sv00010
Datum: 01.09.12 12:11

Ein neues Modul hinzufügen und dort den Code einfügen und dann dort wo du ihn brauchst aufrufen.
Am besten du postest mal ein bisschen Code.
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: Manfred X
Datum: 01.09.12 13:15

Hallo!

Funktionelle Blöcke?
Du programierst offenbar nicht objektorientiert (Klassen),
sondern erstellst Routinen. In dem Fall kannst Du den Code von
Routinen - wie bereits von sv00010 erwähnt - in eine Moduldatei
innerhalb Deines Projekts stellen ("Public") und direkt aus
anderen Modulen aufrufen.
Du kannst aber auch den Modulnamen beim Aufruf davorsetzen oder
Namespaces nutzen - das ist übersichtlicher.

Du kannst Code-Teile (Klassen/Routinen) auch
in ein oder mehrere Projekt(e) des Typs Klassenbibliothek auslagern.
Auf diese Bibliothek wird im anwendenden Projekt ein Projektverweis
gesetzt. Namespaces und Klassen in der Bibliothek kannst Du
entweder im Code "voll qualifiziert" (z.B. Bibliothek.Namespace.Klasse)
ansprechen oder per Imports-Anweisung importieren.

Bei Verwendung mehrerer Formulare solltest Du Dich zunächst mit
den Grundlagen des OOP vertraut machen.
Du kannst innerhalb Deines Hauptformulars Instanzen von weiteren
Formularen mit dem Schlüsselwort New erstellen.
Werte übergibst Du aus dem Hauptformular an untergeordnete Formulare
am besten durch das Einrichten von Eigenschaften im untergeordneten
Formular.

MfG
Manfred

Beitrag wurde zuletzt am 01.09.12 um 13:19:00 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 01.09.12 14:24

Manfred X schrieb:
Zitat:

Hallo!

Funktionelle Blöcke?
Du programierst offenbar nicht objektorientiert (Klassen),
sondern erstellst Routinen.


Jup, Klassen und Methoden kennt C nicht, erst C+, das kenne ich aber nicht...


Mit funktionelle Blöcke meine ich aber, eine eigene Datei in der zB. der ganze USB
Kram gemacht wird, Senden Empfangen etc, die nenne ich der Übersicht halber USB.vb,
damit muss ich nicht lang suchen wo es in meinem Code steht.
Das selbe dann für alle WMI Aufrufe >> WMI.vb, für jeden meiner 4 Regel Kanäle, dann noch ein eigenes Channel1.vb bis Channel4.vb, damit hab ich dann das Form1.vb mit seiner Code Datei plus 10 zusätzliche .vb's.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 01.09.12 16:58

das kenne ich aber nicht...

Und etwas neues lernen, kein Interesse?
Mit VB.Net kannst du es nicht wirklich vermeiden mit Klassen zu arbeiten.

Aber um dein Problem mit Namen vom Code-Dateien zu lösen, du legst neue Module an wie sv00010 schon sagte und nennst sie dabei USB.vb, WMI.vb usw.

Das hilft nicht besonders wenn du vielleicht irgednwann den gleichen Code in einem anderen Projekt brauchst. Dann wäre eine Dll als unabhängiges Projekt besser. Was an sich nichts mit OOP zu tun hat.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 01.09.12 17:13

was neues lernen, an sich schon...

aber, ich brauch das Prog schnell, deshalb quick, dirty und Vbasic,
sonst wäre die Sprache der Wahl C++ gewesen, die Zeit alles zu lernen hab ich grade aber nicht.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 01.09.12 18:46

quick, dirty

Du wolltest deinen Code doch etwas sauberer gestalten?

Aber ok, du bist nur hier um einige Fakten zu sammeln. Schade. Es ginge aber eventuell schneller wenn du nicht ca. 99,9% der Sprache als unwichtig einstufen würdest.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 01.09.12 20:55

im Prinzip hast Du schon recht,
mir bleibt neben meinem Job aber kaum Zeit über.

6 Tage Woche 12h - 15h Täglich, Familie wäre dann auch noch da...

am meisten Zeit hätte ich während der Nachtschicht, so ab 0200,
muss nur raus wenn was passiert.

deshalb muss ich leider passen, was neues lernen angeht, zumindest im Moment

Beitrag wurde zuletzt am 01.09.12 um 20:57:27 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 02.09.12 13:07

Also, ich blicks echt ned.


Das ist der Anfang von Form1.vb
Public Class MAIN
    Shared TempCPUValue As Single, TempMoBoValue As Single, TempGPUValue As _
      Single, ReceiveUSB As String
    Shared HPFCUpdateRequest As Byte = 0
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles MyBase.Load
        Timer1sec.Enabled = True
        GroupBoxPC.Text = Environment.MachineName
 
 
    End Sub
 
 
    Private Sub Timer1sec_Tick(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Timer1sec.Tick
        WMITEMPERATURES()
        If HPFCUpdateRequest = 0 Then
 
        Else
 
        End If
 
 
    End Sub
Jetzt hab ich mir noch eine Module1.vb erstellt
Module Module1
 
    Public Sub WMITEMPERATURES()
 
        Dim p() As Process = Process.GetProcessesByName("OpenHardwareMonitor")
 
        If p.Length > 0 Then
            HStatusHWMonitor.Image = HPFCMonitor.My.Resources.Resources.BGreen
 
            Dim objMgmt As System.Management.ManagementObject
            Dim SensorName As New System.Management.ManagementObjectSearcher( _
              "root\OpenHardwareMonitor", "SELECT * FROM Sensor")
            For Each objMgmt In SensorName.Get
                If objMgmt("Name") = "CPUHPFC" Then
                    TempCPUValue = objMgmt("Value")
                    TempCPU.Text = objMgmt("Value") & " °C"
                End If
 
                If objMgmt("Name") = "MotherboardHPFC" Then
                    TempMoBoValue = objMgmt("Value")
                    TempMoBo.Text = objMgmt("Value") & " °C"
                End If
 
                If objMgmt("Name") = "GPUHPFC" Then
                    TempGPUValue = objMgmt("Value")
                    TempGPU.Text = objMgmt("Value") & " °C"
                End If
            Next
 
        Else
            StatusHWMonitor.Image = HPFCMonitor.My.Resources.Resources.BRed
        End If
    End Sub
 
End Module
Gleich mal der erste Fehler ist: HStatusHWMonitor wurde nicht Deklariert
wurde er natürlich schon, im Form1.vb, da ist es ein StatusLabel.

Ich weiß nicht, wie ich diese beiden Dateien zusammenführen kann, was fehlt?
Es reicht offensichtlich nicht die Module1.vb nur zum Projekt hinzu zufügen.
Selbes Problem natürlich bei jeder anderen Datei, außer ich lass die 2. Datei ebenfalls mit: Class MAIN
beginnen, dann bringt er mir aber die Warnung, Klasse gibts schon.

Sagt mir bitte, was für Anweisungen mir fehlen um das zum funktionieren zu bringen.

Seht von: Lies ein VB Buch/ schau nach OOP/ lern erst mal x, y; ab, die Zeit hab ich leider nicht.
Immerhin such ich schon eine ganze Weile, vielleicht versteh ichs auch einfach nicht.

Was mir helfen würde:

Du musst das "Code xxx" bei "Stelle Z" einfügen, weil damit "blabla" gemacht wird.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 02.09.12 15:11

Du kannst dein Form-Objekt (Instanz einer Klasse!) mit Form1.HStatusHWMonitor ansprechen (oder vielleicht MAIN.wasimmer, es ist nicht ganz klar wie die Klasse heißt). Wird aber hier nicht empfohlen, aber was zu tun wenn du nichts lernen willst?

Allerdings wäre es viel sinnvoller "reine" Routinen auszulagern, eben nur welche, die die Form nicht ansprechen, da solche Routinen nur mit dieser bestimmten Form-Klasse zusammenarbeiten können, und daher eher logisch zum Form-Code gehören.

Besser übergibst du Werte aus der Form als Parameter, und lieferst aus deinen Unterroutinen Werte zurück, die dann der Code in deiner Form bestimmten Controls (Labels usw.) zuordnet.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 02.09.12 16:03

DaveS schrieb:
Zitat:

aber was zu tun wenn du nichts lernen willst?


triffts nicht so ganz; lernen beansprucht Zeit, die ich leider nicht hab

#Region
hilft mir zumindest das ganze etwas übersichtlicher zu gestalten,
irgendwie konnte mir keiner mit einfachen Sätzen erklären wie das funktioniert,
die msdn Hilfe ist schwer verständlich

aber Danke für all die mühe
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 02.09.12 17:08

Und zum Tipp und den Vorschlägen wie du deinen Code verbessern könntest hast du nichts zu sagen und keine Fragen?

Was hat #Region mit der Sache zu tun? Und was ist daran schwer zu verstehen?

#Region "Meine Routinen"
 
    Public Sub Sub1()
 
    End Sub
 
 
    usw...
 
#End Region
Den Codeteil kannst du mit der Maus kollabieren/expandieren.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: ModeratorFZelle (Moderator)
Datum: 02.09.12 21:02

sBronco schrieb:
Zitat:


triffts nicht so ganz; lernen beansprucht Zeit, die ich
leider nicht hab


Das ist falsch, denn deine Uneinsichtigkeit zu lernen hat jetzt schon 1 1/2 Tage verschwendet.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 02.09.12 21:08

#Region kam von mir, bezüglich Übersichtlichkeit




DaveS schrieb:
Zitat:

Und zum Tipp und den Vorschlägen wie du deinen Code
verbessern könntest hast du nichts zu sagen und keine Fragen?


Klassen usw. wurden in den Raum geworfen, davon hatte ich aber bereits gehört,
allerdings keine Ahnung wie genau es funktioniert, ich es [u]genau verwenden kann,
die Hife Funktion und Google, sowie diverse andere Foren haben da leider auch nichts gebracht.

Kann auch an mir liegen, einfach keinen Kopf und keine Zeit mich hinzusetzen und erst mal 2 Wochen
die Grundlagen zu lernen, also Proge ich so wie ichs kann, C Stile halt.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 02.09.12 21:11

By the way, mein Programm ist zu 90% fertig und läuft, sobald ich den neuesten sporadisch auftretenden
Fehler:
Ungültiger threadübergreifender Vorgang
in den Griff bekomme.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: keco
Datum: 03.09.12 13:47

Wenn du das Programm fast fertig und einen solchen Fehler hast, dann kann es im ungünstigen Fall deine gesamte Architektur ruinieren, weil du den Fehler nicht so einfach beheben kannst.

Dann darfst du von vorne anfangen. Zumindest hatte ich das Problem häufig in meiner Anfangszeit, als mein Verständnis noch nicht so gut ausgeprägt war.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 03.09.12 20:31

schon gelöst

Auslöser:
Public Event DataReceived As SerialDataReceivedEventHandler
Lösung:
Do While SerialPort.BytesToRead() > 4
ReceiveUSB = SerialPort.ReadLine()
das liegt im TimerEvent
und wird alle 250ms aufgerufen
kleinstes Paket vom USB Gerät ist 4Bytes lang (+LFCR) also 6Byte

hatte mir gedacht, das das sonst meine Fähigkeiten übersteigt

Beitrag wurde zuletzt am 03.09.12 um 20:32:59 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 03.09.12 22:27

was ich gesucht habe, hab ich jetzt selbst gefunden.
Partial Public Class MAIN
ermöglicht mir exakt was ich wollte,
jetzt ist alles Teil der MAIN Klasse aber auf
Funktionelle Blöcke verteilt,
zB. MAIN.vb, WMI.vb, USB.vb, Channel1.vb, etc etc
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: ModeratorDaveS (Moderator)
Datum: 04.09.12 08:55

Ok, toll wenn du zufrieden bist. Ein riesen Codestück, zerstückelt. Ich immerhin dachte du wolltest dein Programm sinnvoll strukturieren.

________
Alle Angaben ohne Gewähr. Keine Haftung für Vorschläge, Tipps oder sonstige Hilfe, falls es schiefgeht, nur Zeit verschwendet oder man sonst nicht zufrieden ist

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 04.09.12 21:25

Für meine Zwecke ist es Sinnvoll strukturiert.
Schreib ja keinen Spaghetticode.
Wenn ich irgendwann mal Zeit hab, lern ich den Rest.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: ModeratorFZelle (Moderator)
Datum: 04.09.12 23:51

Das siehst nur du so.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Wie kann ich in einem Project, mehrere Formulare benutzen ? 
Autor: sBronco
Datum: 05.09.12 07:12

na dann
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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