Nummerierte Controls zur Laufzeit erstellen

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von TommiB.

    Nummerierte Controls zur Laufzeit erstellen

    Hallo,

    irgendwie stehe ich auf dem Schlauch!! :(

    Ich möchte zur Laufzeit Controls mit Nummerierung erstellen:

    VB.NET-Quellcode

    1. for i = 1 to 10
    2. DIM ba +i as new button <- hinter dem ba sollte dann 1, beim nächsten Schleifendurchlauf 2 ... stehen etc
    3. next i


    Ich hatte mir das schon mal angelesen... Finde das nur nicht wieder...

    Gruß TommiB

    TommiB schrieb:

    Controls mit Nummerierung
    Mach im Designer eine Form mit 10 Buttons und sieh Dir danach die Datei Form1.Designer.vb an, da kommst Du rein, wenn Du auf InitializeComponents klickst.

    Verstehe, was da steht, und empfinde es nach.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ohh, nee.

    Das war leider nicht die Lösung.

    Ich habe auf der form2 mehrere Controls. Die Eigenschaften dieser Controls werden von einem Ablaufprogramm der form1 gesetzt/gelesen.
    form2.vg0.top form2.vg1.top etc...

    Nun möchte ich diese ähnlich wie Arrays ansprechen also z.b. form2.vg(0)... form2.vg(1).... Damit ich einige Eigenschaften in Schleifen lesen oder setzten kann.....
    Ich kann es natürlich auch sequenziell machen, jedoch würden mir Schleifen einiges an Arbeit abnehmen.....

    Hat da jemand eine Idee??

    Gruß TommiB

    TommiB schrieb:

    Idee
    Verstehe zunächst, was eine Instanz ist. Gugst Du hier.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hallo RodFromGermany,

    da muss ich morgen mehr lesen....
    Wenn ich es richtig verstehe, ist eine Instanz eine "Kopie" eines Objektes.
    Durch die Zuweisung kann man "einfacher" auf ein Objekt zugreifen...

    Mehr will heute nicht mehr in meinen Kopf... Da muss ich morgen weiter machen.....

    Gruß TommiB

    TommiB schrieb:

    zugreifen
    kannst Du von der MainForm auf die 2. Form über Properties und Methoden.
    Rückwärts, also von der 2. Form zur MainForm, sendet man Events.
    Dazu musst Du allerdings auf die mit New erstellte Instanz zugreifen, nicht aber über die VB6-Kompatibilitäts-Innstanz, die Dir VB.Net generiert.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ok. Das habe ich verstanden.
    Auf der zweiten Form sind 8 Anzeige-Controls drauf.
    Die 2. Form liegt auf der 2. Grafikkarte und wird über einen HDMI Ausgang auf einem HDMI Monitor ausgegeben.
    Ich brauche nur Properties auf der 2. Form zu ändern.
    Damit ich die Properties effizienter einstellen kann, möchte ich auf die Controls, ähnlich wie Array , zugreifen.
    Das sollte kein Problem sein.
    Du solltest dann eher Methoden scheiben, die mit den entsprechenden Parametern die entspechenden Aktionen auslösen.
    Du kannst auch Methoden machen, mit denen Du Daten aus der anderen Form ausliest.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hmm.
    Keine Ahnung wie das gehen soll.
    Die Controls haben über 200 Properties.

    Vielleicht fällt mir morgen was ein.
    sonnst muss ich so weiter machen.
    Ist zwar nicht sehr effizient, geht aber auch.

    Danke für die Info und Hilfe.

    Gruß TommiB
    OK ErfinderDesRades,
    ich versuche es mal.

    Ich habe eine VideoGrabber SDK, die VB.NET unterstützt. Die SDK stellt ein Control zur Verfügung über das man jeweils die Properties, wie Videosource, Videostandart, Fenstergröße, Overlaytext, Overlay-Lage und vieles andere einstellen kann.
    Ich benötige letztlich ein PAL Signal. Dafür lege ich auf der 2. Grafikkarte die Form2 ohne Rahmen etc. Die Auflösung der 2. Grafikkarte stelle ich auf Pal-Auflösung und konvertiere das HDMI Signal per Hardware in ein CVBS Signal (Video und Audio).
    In der Form2 sind 8 von den Videograbber-Controls, die ich von dem Ablaufprogramm, welche in der Mainform läuft, gesteuert wird.
    Die Form2 ist also "nur" zur Anzeige der Video-Bildern der Videograbber-SKD da.

    So. Ich hoffe, daß war so verständlich??

    Gruß TommiB
    OK. Dann hole ich mal ein wenig aus, um den Sinn und Zweck meiner Anwendung zu erklären.

    Ich bin Funkamateur. Dies ist u.a. mein Hobby. Wir müssen unsere Befähigung in Form einer Prüfung nachweisen und bekommen ein weltweit eindeutiges Rufzeichen zugeteilt.
    Wir betreiben u.a. Relaisfunkstellen. Eine unserer Betriebsarten ist die Übertragung von Audio und Video (Fernsehübertragung) bei uns heisst das ATV.
    Innerhalb dieser Übertragung sprechen wir über Schaltplänen, Schaltungen, Geräte und alles was den Amateurfunk ausmacht.

    Relaisfunkstellen sind dafür da, Reichweiten zwischen Stationen zu vergrößern. Das geht auch mit ATV.
    Dabei empfangen wir auf unterschiedlichen Frequenzen ATV-Signale (Video und Audio) und senden diese wieder aus.
    Damit mehrere Funkamateure dabei kommunizieren können, werden die Videobilder mit Quadprozessoren (4 Bildern zusammen auf einem Monitor - wie im Securitybereich) zusammengefasst.
    Weiter muss man dann noch den Ton mit einer Schaltung mixen ... Ggf. Videoeinblendungs-Schaltung realisieren. DTMF-und Funk-Tonruf auswerten etc...
    Zur Zeit wird so eine ATV Relaisstelle mit vielen Platinen und meist uPCs umgesetzt.
    Ich habe so eine Relaisstelle letztes/vorletztes Jahr mit viel Bastelarbeit selber erstellt (db0ov.de/?page_id=186).

    Ich will jetzt versuchen, mit dieser Videograbber SDK dieses alles mit einem PC zu realisieren.

    Daher benötige ich mind. 6 Grabber für Video/Audio für Eingaben und Zubringerstrecken und zwei für Testbild und Diashow...
    Max. 5 werden gleichzeitig angezeigt.

    Uff... Ich hoffe, das war verständlich.

    Gruß TommiB
    ich hab noch nicht recht verstanden, was jetzt alles an einem Grabber dranhängt.
    Wenns nicht viel ist, könnte man ein Grabber-Control auf ein UserControl packen, und evtl. 2 oder 3 Buttons dazu, um iwas dran einzustellen.

    Wenns komplexer ist, was an einem Video zu operieren ist, würde ich eher dazu neigen, ein Datenmodell zu entwerfen, was alle Informationen zur Ansteuerung eines Grabbers enthält - den Grabber aber nicht.
    Son Datenmodell kann man dann sinnig verarbeiten, man könnte etwa etwas basteln, wo man einen Grabber anklickst, dann öffnet sich für dieses Video das SteuerPanel und bietet das Datenmodell zur Bearbeitung an. Da schraubt man dann dran rum, und wenn der Dialog geschlossen wird, wird das geänderte Datenmodell auf den Grabber angewendet.

    Also vlt. mit einem Usercontrol anfangen: Menu-Projekt-Add_UserControl - und dann ein UserControl gestalten mit einem Grabber drauf, und mw einen Button zum Öffnen des SteuerPanels.
    Ein UserControl kann man gestalten wie ein Form, aber es ist kein Form, sondern wenns fertig ist kann mans aus der Toolbox aufs Form ziehen - in deinem Fall könntest du etwa 6 Stück davon aufs Form schmeissen.

    Also so weit meine unausgegorenen Gedanken - ich hab ja keine Ahnung, ob das dem, was dir vorschwebt, entgegenkäme...

    Aber ich denk, wenn du mit UserControl rumexperimentierst, ist bestimmt nicht verkehrt.
    Und dann guggemol Layout in Windows.Forms - es gibt so einige Möglichkeiten, wie man so UserControls präsentieren könnte: Entweder fix und alle gleich gross (TableLayoutpanel), oder man versucht mit SplitContainern ein dynamisches Layout hinzukriegen.

    Mehrere verschiedene Forms gleichzeitig auffm Bildschirm bin ich nicht so der Froind von. Zum einen ist das nochmal bisserl anspruchsvoller - ein Public shared Datenmodell - zum andern kann da leicht unklar sein, welches der 6 Videos das STeuerpanel grad steuert.

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