Avatar billede anazonda Nybegynder
08. oktober 2004 - 15:47 Der 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.
Avatar billede sjh Nybegynder
08. oktober 2004 - 18:07 #1
'----------------------------------- Form1 -----------------------------------
' Husk TextBox 1, 2 og 3
Option Explicit

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 -----------------------------------
Avatar billede anazonda Nybegynder
14. oktober 2004 - 14:46 #2
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
Avatar billede vb-adversary Nybegynder
20. oktober 2004 - 22:41 #3
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

Ja, sværere er det altså ikke. God fornøjelse!
Avatar billede vb-adversary Nybegynder
20. oktober 2004 - 22:47 #4
-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.
Avatar billede anazonda Nybegynder
30. november 2004 - 19:19 #5
Kikker lige på det.. skal lige bruge en to - tre dage før jeg kan reagere igen
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester