08. oktober 2004 - 15:47Der er
4 kommentarer og 1 løsning
Farvepallet i VB 60 til udvalg af farver
Jeg skal til et program have lavet et farvepallet så jeg lige som i paint kan klikke på palletet og så kommer R, G, B, værdierne i 3 tekstbokse... er der nogen der kan guide mig vej med koder ect.
Private Declare Function TranslateColor Lib "olepro32.dll" _ Alias "OleTranslateColor" ( _ ByVal clr As OLE_COLOR, _ ByVal palet As Long, _ col As Long) As Long
Public Sub ShowRGB(lBackColor As Long) Dim lRGBColor As Long TranslateColor lBackColor, 0, lRGBColor
' Her kommer farverne ud.. Text1.Text = CStr(lRGBColor And &HFF&) ' Rød Text2.Text = CStr((lRGBColor And &HFF00&) / 2 ^ 8) ' Grøn Text3.Text = CStr((lRGBColor And &HFF0000) / 2 ^ 16) ' Blå End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Call ShowRGB(Me.BackColor) ' eller ' Call ShowRGB(Picture1.BackColor) End Sub '----------------------------------- Form1 -----------------------------------
Hey... ser godt ud... giv mig lige et hint hvad de forskellige ting er.. for at være ærlige er jeg ikke lige vaks til VB som mange af jer... men ellers... det ser fedt ud
Det er en måde at gøre det på, ja. Men hvis du udnytter windows' api, kaldt CommonDialog, kan du opnå et pallet-resultat helt som i Paint.
Når du har åbnet dit projekt, skal du starte med at tilføje komponentet CommonDialog. Åbn Dropown-menuen "Project", og fortsæt med "Components..." Det du så skal sætte fluebn udfor, hedder "Microsoft Common Dialog Control 6.0" Det er muligt du finder den i tidligere versioner, men med mindre du bruger en meget gammel version af windows, vil den nyeste version af CommonDialog altid understøtte farvevalg.
Herefter er det nye element i toolbaren tilføjet. Vælg elementet (CommonDialog) og placer det et vilkårligt sted på din form som en form control. Giv den nye form control et navn (marker det, og ændr "Name"-egenskabet), men her kalder jeg den bare "CommonDialog1"
Du har sikkert arbejdet en del med pictureboxes; lav en af dem, og dobbeltklik på den straks derefter.
Dit nye sub vi se sådan ud:
Sub Picture1_Click()
End Sub
... Skriv, så der kommer til at stå følgende:
Sub Picture1_Click() CommonDialog1.ShowColor Picture1.BackColor = CommonDialog1.Color End Sub
-Undskyld, jeg vil lige være sikker på om det var Ok, at RGB kommer udenfor din egen form, ellers skal du, som sjh foreslår, tilføje følgende på en ny linje under "Picture1.BackColor = CommonDialog1.Color" :
Text1.Text = CStr(Picture1.BackColor And &HFF&) Text2.Text = CStr((Picture1.BackColor And &HFF00&) / 2 ^ 8) Text3.Text = CStr((Picture1.BackColor And &HFF0000) / 2 ^ 16)
Til dine 3 tekstbokse som du hhv. har kaldt Text1, Text2 og Text3. En generel farveværdi er nemlig lidt svær at forstå umiddelbart, men når man udsætter den for lidt hex her og dér, får man nogle fine RGB værdier.
Kikker lige på det.. skal lige bruge en to - tre dage før jeg kan reagere igen
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.