kostenloser Webspace werbefrei: lima-city


Farbkreis

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    u***********s

    guten morgen :)

    ich versuche nun seid einiger zeit, direkt auf meine form einen farbkreis unterzubringen. leider gelingt mir dies nicht so recht.

    es gibt zwar das steuerelement colordialog, jedoch öffnet sich da ein neues fenster.

    wie ist es möglich, wie zb in paintdotnet einen farbkreis direkt angezeigt zu bekommen.

    ich benutze vb.net 2008.

    mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    Was willst du denn mit einem ColorDialog? Ich glaub viel verstehst du noch nicht vom Programmieren...

    Hier mal ein paar Beispiele, wie du Die Zeichnen-Klasse verwendest:

    Namespace: System.Drawing

    Code gilt für VB .NET 2003, 2005, 2008

    1. Rahmen eines Rechtecks zeichnen
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    
            Dim rectangle As New Rectangle(5, 5, Me.ClientRectangle.Width - 10, Me.ClientRectangle.Height - 10)
            Dim drawingpen As New Pen(Color.Blue, 2)
            e.Graphics.DrawRectangle(drawingpen, rectangle)
    
        End Sub


    2. Rahmen einer Ellipse zeichnen
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    
            Dim rectangle As New Rectangle(5, 5, Me.ClientRectangle.Width - 10, Me.ClientRectangle.Height - 10)
            Dim drawingpen As New Pen(Color.Blue, 2)
            e.Graphics.DrawEllipse(drawingpen, rectangle)
    
        End Sub


    3. Inhalt eines Rechtecks mit Farbverlauf füllen
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    
            Dim rectangle As New Rectangle(5, 5, Me.ClientRectangle.Width - 10, Me.ClientRectangle.Height - 10)
            Dim drawingbrush As New System.Drawing.Drawing2D.LinearGradientBrush(rectangle, Color.Blue, Color.Gold, 45)
            e.Graphics.FillRectangle(drawingbrush, rectangle)
    
        End Sub


    4. Inhalt einer Ellipse mit Farbverlauf füllen
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    
            Dim rectangle As New Rectangle(5, 5, Me.ClientRectangle.Width - 10, Me.ClientRectangle.Height - 10)
            Dim drawingbrush As New System.Drawing.Drawing2D.LinearGradientBrush(rectangle, Color.Blue, Color.Gold, 45)
            e.Graphics.FillEllipse(drawingbrush, rectangle)
    
        End Sub


    Und falls du dieses Farbauswahldialogfenster (ColorDialog) irgendwie in deine Form einbauen wolltest: Das geht nicht, sonst hieße es ja auch nicht ColorDialog. Du musst es also selbst bauen. Alternativ gäbe es die Möglichkeit, manchen Eigenschaften des ColorDilaogs so zu überschreiben und auszutauschen, dass man es doch sehr geschickt auf der eigenen Form einbauen kann, was aber einen etwas größeren Aufwand darstellt.

    Beitrag geändert: 9.7.2008 14:11:20 von cbhp
  4. Autor dieses Themas

    u***********s

    mit dem colordialog will ich gar nix, ich hab diese frage nur schon in einem anderen forum gestellt, und da kam von 3 usern die antwort, das ich den nutzen soll, obwohl ich schon schrieb, das ich kein extra dialog will :P, deswegen nur der hinweis.



    edit: hab das mal getestet. bei deinem code hab ich leider nur ein farbverlauf von zwei farben...ich möchte aber erreichen, das ich einen farbkreis habe, wie er z.b. in paintdotnet verwendet wird, sprich mit allen verfügbaren farben

    Beitrag geändert: 10.7.2008 7:45:03 von ultimatetools
  5. m******s

    Joa, selbst coden. Ich würde versuchen, so zu arbeiten wie beim normalen Colordiag. Du hast ein Quadrat, x-Koordinate ist der Farbton, y-Koordinate die Sättigung. Dazu dann ein Schieberegler, der die Helligkeit beschreibt.
    Aus den Koordinaten eines Klickes ins Quadrat lässt sich dann sehr leicht Farbton und Sättigung berechnen. Wenn es bei VB.NET (hab da wenig Graphisches gemacht bisher) nicht die Möglichkeit gibt, die Farbe damit zu definieren kann man verhältnismäßig leicht in RGB umrechnen, dazu würde ich mir dann mal einfach den Paint-Farbendialog anschauen und gucken, was mit den Zahlen passiert, wenn du horizontal oder Vertikal verschiebst.

    Aber ums selbst coden kommst du auf jeden Fall nicht rum.
  6. Autor dieses Themas

    u***********s

    ich wollte auch keinen code von euch,sondern nur tipps, in die richtige richtung, aber habs hinbekommen.

    zuerst einmal habe ich ein bitmap mit einem farbkreis als grafik erstellt.

    Dim colork as Bitmap

    bitmap hat die funktion \"getpixel(x, y)

    diese gibt mir den rgb wert zurück, der auf dem angeklickten pixel liegt.

    trotzdem danke für die hilfe :P
  7. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.


    hab das mal getestet. bei deinem code hab ich leider nur ein farbverlauf von zwei farben...ich möchte aber erreichen, das ich einen farbkreis habe, wie er z.b. in paintdotnet verwendet wird, sprich mit allen verfügbaren farben


    Natürlich weiß ich, dass der Kreis nur 2 Farben hatte. Schließlich war\'s ja nur ein Beispiel.
    Du kannst es aber ruhig selbständig auf alle Farben erweitern.
  8. Ich möchte keinen extra Thread dafür anlegen, aber kann mir jemand sagen , wie ich ein Rechteck programmiere, in dem sich jede 5Sekunden die Farbe ändert?
  9. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.


    Ich möchte keinen extra Thread dafür anlegen, aber kann mir jemand sagen , wie ich ein Rechteck programmiere, in dem sich jede 5Sekunden die Farbe ändert?


    Wie man ein Rechteck zeichnet und mit Farbe füllt, steht ja bereits weiter oben...
    und nun musst du einfach einen Timer erstellen, dessen Intervall 5 Sekunden beträgt und bei jedem Tick ein Rechteck zeichnet.


    Beitrag geändert: 11.8.2008 17:38:56 von cbhp
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!