Schaltplan erstellen mit VB

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Schaltplan erstellen mit VB

    Guten Morgen, :)

    ich bin im Rahmen meines IT Projektes auf der Suche nach einer hilfreichen Antwort.

    Es muss ein Schaltplan grafisch dargestellt werden mit Hilfe von VB. Der Schaltplan an sich steht noch nicht fest. Die Schalterstellung soll sich beim drücken des jeweiligen Schalters verändern.

    Hat jemand einen Tipp für mich wie ich so etwas angehen kann ?

    Wir haben zwar einen Grundkurs in VB erhalten, jedoch nur mit dem nötigsten wie Schleifen, If Abfragen, Klassen, usw.

    Besten Dank.

    peppoderwilde schrieb:

    Wir haben zwar einen Grundkurs in VB erhalten, jedoch nur mit dem nötigsten wie Schleifen, If Abfragen, Klassen, usw.


    Dann empfele ich dir entweder noch zu warten und dich in die Materie einzulesen oder das Projekt zu vergessen.
    Im endeffekt brauchst du zur Darstellung eine Zeichenklasse(GDI+) und für die Logik dahinter...also ich könnte dir jetz nicht auf anhieb sagen welche Klasse da zu verwenden ist, evtl musste dir selber nen Typen schreiben.

    Lg Radinator
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Danke für deine schnelle Antwort. Das Projekt kann ich leider nicht vergessen. Abgabetermin ist Ende Januar. (Studium 3. Semester)

    Ist es nur über die Zeichenklasse GDI+ realisierbar oder gibt es da noch andere Möglichkeiten.

    Ich kann mir nicht vorstellen das unser Projektleiter uns, eine für uns unlösbare Aufgabe gibt.
    Nun, im Grunde willst du ja nicht nen ganzen Schaltplan rendern. Das wäre eine Jahrzehnt-Aufgabe.

    Wenn ich dich richtig verstanden habe möchtest du nur einzelne Bereiche des Bildes (z.B. einen Schalter, oder von mir aus auch andere Teile) je nach Variableninhalt umstellen/tauschen?
    Dann würde ich hier tatsächlich auch zu GDI+ raten, einfach in eine Grafik im Speicher den Schaltplan laden und dann immer der Aufgabe entsprechend die Grafik einfach "übermalen".

    Das sollte relativ einfach zu erlernen sein, schau doch mal nach entsprechenden Dingen zu den GDI+ Methoden in .net

    Viele Grüße,
    Manawyrm

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Manawyrm“ ()

    peppoderwilde schrieb:

    Ist es nur über die Zeichenklasse GDI+ realisierbar oder gibt es da noch andere Möglichkeiten


    Klar kannst du da auch über DirectX machen, aber 1.) is da wesentlich aufwendiger und 2.)braucht man directX nur wenns um Spiele geht (weils einfach schneller ist)

    peppoderwilde schrieb:

    Abgabetermin ist Ende Januar


    Ooohhh...ok stimmt...dann kannste das Projekt ned vergessen :D

    peppoderwilde schrieb:

    Wir haben zwar einen Grundkurs in VB erhalten, jedoch nur mit dem nötigsten wie Schleifen, If Abfragen, Klassen, usw.


    Des stört mich irgendwie, ich kann ned glauben dass euch nur eine Einführung gegeben wurde und ihr dann gleich sowas schreiben sollt. Also entweder ist die Aufgebenstellung was anderes (schreibe den Pseudocode + Dokumentation) oder wir beide verstehen unter "Grundkurs in VB" und "nötigsten Schleifen, If Abfragen, Klassen" unteschiedliche Dinge. (Auch wenn es sich bei dir um ein Studium handelt.
    In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell
    Was für ein Schaltplan?
    ein ComputerChip?
    ein Radio-Schaltplan?
    eine Auto-Verkabelung?

    Aber kannst eiglich echt vergessen. Für sowas muss man ein sehr listiges Datenmodell erstellen können, und dann die Datensätze erweitern, damit sie sich selber zeichnen können.
    Und dann noch ein eigenes Control schreiben - vlt. auch mehrere, worauf das Datenmodell sich zeichnet.
    Ich denke ich überlegt zu kompliziert.

    @peppoderwilde
    Soll der Schaltplan im porgramm Automatisch erstellt werden oder wird der vorgegeben sein?


    Wenn der Vorgegeben ist könnte man die Leiterbahnen auch einfach mit den Linien aus dem VisualBasicPowerPack auf die Form gezeichnet werden.
    Die Schalter können Button sein die je nach "Schalterstellung" ein anderes Bild anzeigen.

    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    ja, aber ohne Datenmodell kannst du dir nicht merken, welche Linie an welche Stelle von welchem Powerpack-Shape soll.
    Ausserdem hat ein Bauelement definierte Anschlüsse, und dazu musste - wenndes mit dem Powerpack-Schrott machen willst - mehrere Shapes miteinander verbinden, dass die Anschlüsse beim Bauteil immer an derselben Stelle bleiben - auch wenn mans verschiebt oder dreht.

    Ich bleibe lieber beim Prinzip: Controls ordnet man im Designer an - nicht zur Laufzeit.
    @ErfinderDesRades
    Da stimme ich dir zu. Mein "Model" ist nur sinnvoll wenn man einen festen Schaltplan hat der nur Visualisiert werden soll. Ein dynamisches Erstellen macht mir Shapes keinen Sinn.

    Aber ohne weitere Info einfach mal GDI+ vorrauszusetzten wäre von einem Dozenten schon etwas viel verlangt.
    Ich würde mal anfragen wie das genau aussehen soll. Vielleicht wurde die Aufgabenstellung ja auch nicht ganz oder falsch verstanden.
    There is no CLOUD - just other people's computers

    Q: Why do JAVA developers wear glasses?
    A: Because they can't C#

    Daily prayer:
    "Dear Lord, grand me the strength not to kill any stupid people today and please grant me the ability to punch them in the face over standard TCP/IP."
    Aber ohne weitere Info einfach mal GDI+ vorrauszusetzten wäre von einem Dozenten schon etwas viel verlangt.

    So ist es halt in der Uni. Ich durfte hässliche Multiserver in C in allen Variationen (iterativ, mit preforking, selectloop, Unterstützung für io-multiplexing) ohne eine Erklärung schreiben oder komplexe Simulationen in Python, ohne dass es irgendeine Einführung gegeben hätte. Das wurde z.B. in 3 Tagen erwartet, und hier reden wir von Januar, also halte ich das durchaus für möglich. Immer auf die Fresse eben :)

    Es muss ein Schaltplan grafisch dargestellt werden mit Hilfe von VB. Der Schaltplan an sich steht noch nicht fest.

    Wenn der Schaltplan feststeht könntest du ihn natürlich hardcoden, aber das ist ja nicht Sinn der Sache. Zumindest die Logik dahinter sollte es erlauben, jeden Schaltplan zu simulieren. Deine Aussage klingt aber zumindest danach, dass du noch einen konkreten Schaltplan bekommst, der dann realisiert werden soll?

    Ausserdem hat ein Bauelement definierte Anschlüsse, und dazu musste - wenndes mit dem Powerpack-Schrott machen willst - mehrere Shapes miteinander verbinden, dass die Anschlüsse beim Bauteil immer an derselben Stelle bleiben - auch wenn mans verschiebt oder dreht.

    Daher meine Frage, ob dieser Grad der Dynamik wirklich benötigt wird. Wenn die Anordnung feststeht und das nicht Teil der Anforderung ist macht das schonmal weniger Arbeit, weil man sich um sowas nicht kümmern muss sondern ausschließlich um die Simulation der Logik.
    Danke für die hilfreichen Antworten.

    Habe jetzt den Schaltplan per Hardcode erstellt und die einzelnen Schalter per Benutzersteuerelement.Dort habe ich dann einen Schalter erstellt und die einzelnen Koordinaten der geöffneten und geschlossenen Stellung per Funktionen und Variablen realisiert.

    Jetzt habe ich ein Problem. Ich möchte eine Funktion einer anderen Klasse aufrufen. Mit dieser soll eine Hilfsvariable verändert und noch ein paar Änderungen vorgenommen werden.

    Da komme ich allerdings an meine Grenzen. :)

    Hab es folgendermaßen schon probiert, leider ohne Erfolg :(

    VB.NET-Quellcode

    1. Public Class GUI_Control
    2. Dim Maintenance As Integer
    3. Public Function MaintenanceOFF()
    4. ...
    5. ...
    6. Maintenance = Maintenance - 1
    7. Return Maintenance
    8. End Function


    VB.NET-Quellcode

    1. Public Class GUI_MaintenanceLogin
    2. Dim Maintenance As New GUI_Control
    3. Maintenance.MaintenanceOFF()

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „peppoderwilde“ ()

    Habe mir jetzt in einer Messagebox den Wert von Maintenance anzeigen lassen.

    Initialisiert wird Maintenance mit 0 . Nach ausführen einer Funktion MaintenanceON() wird dieser um 1 erhöht.

    Laut Messagebox wird dies auch ausgeführt.

    Nur setzt meine Funktion MaintenanceOFF() den Wert von Maintenance nicht wieder auf 0 zurück.

    Auch die Farbänderung für einen Button wird nicht ausgeführt.

    Setze ich dort einen Haltepunkt springt das Programm auch nach drücken des jeweiligen Buttons zu diesem Haltepunkt. Allerdings wird nichts aus dieser Funktion ausgeführt. :(

    Maintenance wird nicht auf 0 gesetzt und der Button ändert seine Farbe auch nicht .