| |
Fortgeschrittene ProgrammierungPicturebox mit Farbverlauf zeichen? | | | Autor: I.V. | Datum: 23.01.15 20:40 |
| Hallo zusammen,
ich habe mal wieder ein Problem.
Ich möchte eine Picturebox mit einen Farbverlauf, in Abhängigkeit von einem Prozentwert, von Grün über Geld zu Rot zeichnen.
Dabei soll Grün bei 0% starten, bei 50% soll es Gelb sein und naja, bei 100% halt Rot
Kann mir bitte jemand dabei helfen?
Danke und Gruß Ingo
Wer aufhört sich zu verbessern, hört auf gut zu sein. | |
Re: Picturebox mit Farbverlauf zeichen? | | | Autor: Zardoz | Datum: 23.01.15 23:04 |
| Hallo Ingo,
das geht mit der Api-Funktion GradientFill:
Siehe dazu:
http://www.activevb.de/tipps/vb6tipps/tipp0166.html
http://www.vbarchiv.net/tipps/details.php?id=1653
Man kann den Farbverlauf auch selbst errechnen, etwas so:
Dim i&, F1&, SW&, SH&
With Picture1
.ScaleMode = vbPixels
.AutoRedraw = True
SW = .ScaleWidth
SH = .ScaleHeight
End With
For i = 0 To SW / 2 - 1
F1 = i / (SW / 2) * 255
Picture1.Line (i, 0)-(i, SH), RGB(F1, 255, 0)
Picture1.Line (i + (SW \ 2), 0)-Step(0, SH), RGB(255, 255 - F1, 0)
Next i Gruss,
Zardoz | |
Re: Picturebox mit Farbverlauf zeichen? | | | Autor: I.V. | Datum: 23.01.15 23:55 |
| Hallo Zardoz,
ja Super, dein Code ist super....
Wie muss ich das ändern, dass der Verlauf entgegengesetzt (Rot, Gelb, Grün) gefüllt wird?
Danke und Gruß Ingo
Wer aufhört sich zu verbessern, hört auf gut zu sein. | |
Re: Picturebox mit Farbverlauf zeichen? | | | Autor: Zardoz | Datum: 24.01.15 05:42 |
| Hallo Ingo,
ändere die Zeilen mit Line mal so:
Picture1.Line (i, 0)-(i, SH), RGB(255, F1, 0)
Picture1.Line (i + (SW \ 2), 0)-Step(0, SH), RGB(255 - F1, 255, 0) Gruss,
Zardoz | |
Re: Picturebox mit Farbverlauf zeichen? | | | Autor: I.V. | Datum: 27.01.15 18:32 |
| Hallo Zardoz,
ich muss nochmal nerven.
Du bist ja mit der Farbmischerei super fit.
Kannst du mir sagen, wie ich eine Farbe in Abhängigkeit von einem Wert zur Laufzeit anpassen kann?
Dabei soll die Farbe bei einer kleinen zahl grün sein und bei steigenden Werten über gelb zu rot werden....
Wenn ich das so mache, dann bekomme ich zwar bei hohen Zahlen ne rote Farbe und ne grüne bei kleinen Werten, aber wenn die Zahl z.B. 125, dann wird die Farbe so ekelig grün und nicht gelb.
Dim lngCol as Long
Dim Wert as Integer
Wert = 125
lngCol = rgb(Wert, 255- Wert,0 )
Text1.Backcolor = lngCol Gruß Ingo
Wer aufhört sich zu verbessern, hört auf gut zu sein. | |
Re: Picturebox mit Farbverlauf zeichen? | | | Autor: Zardoz | Datum: 27.01.15 21:33 |
| Hallo Ingo,
probier's mal so:
If Wert < 128 Then
Rot = 255
Gruen = Wert / 127 * 255
Else
Rot = (1 - (Wert - 128) / 127) * 255
Gruen = 255
End If
Farbe = RGB(Rot, Gruen, 0) Der Inhalt der Variablen Wert muss sich zwischen 0 und 255
bewegen, sonst muss man da noch was anpassen.
Gruss,
Zardoz | |
Re: Picturebox mit Farbverlauf zeichen? | | | Autor: I.V. | Datum: 28.01.15 19:58 |
| Hallo Zardoz,
Danke
Gruß Ingo
Wer aufhört sich zu verbessern, hört auf gut zu sein. | |
| 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 |
|
|
vb@rchiv CD Vol.6 vb@rchiv Vol.6
Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
Online-Update-Funktion Entwickler-Vollversionen u.v.m.Jetzt zugreifen Tipp des Monats sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|