Form Farben vom user anpassbar machen

  • VB.NET

Es gibt 22 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Form Farben vom user anpassbar machen

    Hallo leute,

    ich hätte gerne eine (für euch warscheinlich) simple frage, ich hab kein plan und zwar
    hab ich mir ne kleine form gebastelt und hab auch "skins" bzw farb combis gemacht.
    Nur möchte ich es anbieten, das user sich eigene style.txt datein erstellen ungefähr in diesem style:

    Quellcode

    1. button1 = White
    2. form1 = Red

    und dies soll dann ausgelesen werden, aus der txt und dann in

    Quellcode

    1. Me.button1.ForeColor = Color.White
    2. Me.ForeColor = Color.Red

    "umgewandelt" werden
    so das user dann sich eine leere skin.txt runterladen können und einfach die farben reinschreiben.
    nur ich hab keine ahnung wie das geht und oder wie ich es anstellen kann, ich kann zwar einiges aber jetzt nicht advanced, deshalb bitte ich euch mir zu helfen also code und eine erklärung damit ich es irgendwann man selber kann und auch das erweitern kann.

    mfg dylan

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

    @Manawyrm
    Also das buch ist naja sehr umfangreich, bis ich das durchhab könnte es bisschen dauern^^
    naja um es bisschen zu beschleunigen würd ich den gerne wissen wo ich den genau diese information die ich brauche herbekomme (aus dem buch), bzw ob jemand einen code hätte^^

    mfg dylan

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

    ich bin mir nicht sicher ob es bekannt ist aber ich brauch das für ne simple forms anwendung^^ (sry das ich es vergessen habe zu sagen)
    irgendwie hab ich den inhalt deines links nicht ganz verstanden^^

    Quellcode

    1. <SerializableAttribute> _
    2. <ComVisibleAttribute(True)> _

    kp was das ist

    achso und es geht (hört sich simpel an) das er aus einer txt datei einfach eine zeile sucht die mit (z.b.) Form1 beginnt, folgend mit einem = und dann einem wert z.b.
    Form1 = Red
    und dies soll dann in der form in
    Form1.ForeColor = Color.Red
    umgewandelt werden
    ja und nein.
    Vom Niveau her ist die Frage sehr schwierig, und ja, so eine schwierige Frage stellen natürlich vorzugsweise Anfänger.

    Wie stellst du dir das ühaupt vor?

    Soll der User da Panel und SplitContainer von Label und Textboxen unterscheiden können, und wie dann bestimmen ForeColor/BackColor/Padding/FormatString/BorderStyle und wasweißichnichalles?

    Der User ist kein Programmierer.
    ja und nein.
    Vom Niveau her ist die Frage sehr schwierig, und ja, so eine schwierige Frage stellen natürlich vorzugsweise Anfänger.

    Wie stellst du dir das ühaupt vor?

    Soll der User da Panel und SplitContainer von Label und Textboxen unterscheiden können, und wie dann bestimmen ForeColor/BackColor/Padding/FormatString/BorderStyle und wasweißichnichalles?

    Der User ist kein Programmierer.


    Also in der Form habe ich vordefinierte designs, in einer menubar

    VB.NET-Quellcode

    1. Public Sub Standardfarben()
    2. Me.BackColor = Color.Aqua
    3. Me.ForeColor = Color.Black
    4. Me.MenuStrip1.BackColor = Color.DodgerBlue
    5. Me.MenuStrip1.ForeColor = Color.White
    6. End Sub

    so ungefähr und der user soll die möglichkeit haben eine text datei zu erstellen die so aussieht

    Quellcode

    1. Form1.Hintergrund = Aqua
    2. Form1.Vordergrund = Black
    3. MenuStrip1.Hintergrund = DodgerBlue
    4. MenuStrip1.Vordergrund = White

    zu machen und das wird dann halt in einem code wie
    oben

    VB.NET-Quellcode

    1. Public Sub Standardfarben()
    2. Me.BackColor = Color.Aqua
    3. Me.ForeColor = Color.Black
    4. Me.MenuStrip1.BackColor = Color.DodgerBlue
    5. Me.MenuStrip1.ForeColor = Color.White
    6. End Sub
    umgewandelt

    achso und ich werde natürlich sone beispieltheme.txt für die user zu verfügung stellen, die brauchen dann nur super tolle farben reinzumachen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dylan Hunt“ ()

    also der User soll wirklich Programmierer-Tätigkeit ausführen:
    TextDatei erstellen, Haufen Code reinschreiben, an der richtigen Stelle unter dem richtigen Namen abspeichern.

    Und dein Prog liest die Datei, interpretiert den Code und führt entsprechende Befehle aus.

    Was, wenn der User-Programmierer sich verprogrammiert?

    Naja, wenns nur um Farben geht, gehts fast noch, nur weiß der user um die Namen aller verfügbaren Farben?

    Aber müssen nicht auch noch mehrere Varianten in die Datei hinein?
    Weil wenner einen Schrott-Entwurf verbrochen hat, willer ja wieder den vorherigen Stand zurück-anwählen können.
    Das wird schon eine eigene kleine Syntax.

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

    ErfinderDesRades schrieb:

    also der User soll wirklich Programmierer-Tätigkeit ausführen:
    TextDatei erstellen, Haufen Code reinschreiben, an der richtigen Stelle unter dem richtigen Namen abspeichern.

    nein -.- er bekommt eine vorlage wo er einfach nur die farben ändern kann... ganz simpel.
    nur soll das programm dann diese datei laden und z.b. nach Form1.Vordergrund = xyz suchen und dies in Form1.ForeColor = Color.xyz umwandeln und ausführen

    ErfinderDesRades schrieb:

    Naja, wenns nur um Farben geht, gehts fast noch, nur weiß der user um die Namen aller verfügbaren Farben?

    er bekommt eine liste, in der vorlage

    und ich weiß es gibt auch andere wege nur dies ist auch die perfekte gelegenheit um es zu können damit ich es weiß und auch für anderes nutzen kann.

    Dylan Hunt schrieb:

    und ich weiß es gibt auch andere wege nur dies ist auch die perfekte gelegenheit um es zu können damit ich es weiß und auch für anderes nutzen kann.
    naja - dabei wird ein sehr schrulliges Datenformat herauskommen, fast eine eigene "Design-Sprache" oder wie mans nennen soll.
    Dabei gibts bereits ausgezeichnete standartisierte Datenformate - aber da soll natürlich kein User drin rumschreiben.

    also ich sehe da keine perfekte gelegenheit, und es ist auch für nix anneres zu nutzen.
    ne das mit perfekte gelegenheit ist eigentlich wegen was anderes gemeint bzw für ein anderes projekt aber das ist eig. nicht so wichtig also wenn du eine andere idee hast wie man es realisieren kann, das es besser bzw simpler ist dann höre ich gerne zu

    ich wollt das nur so das er sich ein eigenes design zusm bauen kann und das auch speichern.
    achso und ich hab den namen des themas geänder damit er besser passt.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Dylan Hunt“ ()

    also Form-Farben anpassen.
    ich weiß nicht recht. Iwie schick wäre, wenn man die Bedien-Elemente anwählen könnte, und dann einen Color-Dialog öffnen, um eine Farbe dafür auszuwählen.
    Weiters (ohne das tu ichs ja nicht) sollte man verschiedene Komplett-Gestaltungen abspeichern, auswählen und reproduzieren können.

    Aber um das zu coden braucht man allerlei Kenntnisse: DB-Programmierung ohne Datenbank, man muß die Controls rekursiv durchlaufen können, und für das mit dem Controls markieren habichmal ein Code verzapft, findich jetzt aber nicht wieder.

    Ja, und am Ende kommt etwas eher schrulliges bei raus, was imo den Aufwand nicht wert ist:
    "Guckma toll! - ich hab den Button grün!"

    ;)
    @Dylan Hunt
    Vielleicht ist ein Anfang für dich in dieser Art akzeptabel.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Me.BackColor = My.Settings.Color1
    5. End Sub
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. Using cd As New ColorDialog
    8. If cd.ShowDialog = Windows.Forms.DialogResult.OK Then
    9. Me.BackColor = cd.Color
    10. My.Settings.Color1 = cd.Color
    11. My.Settings.Save()
    12. End If
    13. End Using
    14. End Sub
    15. End Class

    LaMiy schrieb:

    @Dylan Hunt
    Vielleicht ist ein Anfang für dich in dieser Art akzeptabel.
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Me.BackColor = My.Settings.Color1
    5. End Sub
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. Using cd As New ColorDialog
    8. If cd.ShowDialog = Windows.Forms.DialogResult.OK Then
    9. Me.BackColor = cd.Color
    10. My.Settings.Color1 = cd.Color
    11. My.Settings.Save()
    12. End If
    13. End Using
    14. End Sub
    15. End Class

    teste ich mal gleich (ca. 1 std weil grad nicth geht)
    //ADD
    Ich kann nicht mit "Option Strict On" Arbeiten da ich massen fehler dadurch erhalte
    aber hier das farbmenu funktioniert und der macht auch die farbe, nur speichert er sie nicht
    ich musste aber weil er ein fehler angezeigt hat, ein feld für "Color1" generieren

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Dylan Hunt“ ()

    ich geh mal davon aus das keiner mehr antwortet aber es ist nicht ganz gelöst!
    er speichert's nicht.
    @ErfinderDesRades
    @LaMiy
    ihr seit die 2 die eig. wirklich geholfen haben also hoffe ich ihr könnt dies noch zu ende bringen
    und wenns möglich ist könntet ihr mir schreiben was Option Explict On heißen soll? weil wenn ichs benutze tauchen 20mio fehler in meinem code auf.

    mfg Dylan
    Option Strict On! Habich den Link noch nicht gebracht?
    Besser kann ichs nicht erklären, warums unabdingbar ist.

    Die Fehler, die jetzt bei dir "auftauchen" - die waren schon die ganze Zeit da.
    Natürlich ists umso härter, schlechte Gewohnheiten zu lassen, je länger sie eingeschliffen sind.