Avatar billede angelenglen Nybegynder
17. marts 2004 - 12:28 Der er 5 kommentarer og
1 løsning

Skift farve på tekst, hvis der er valgt mørk baggrundsfarve.

Jeg har en form, hvor brugeren har mulighed for at vælge hvilken baggrundsfarve formen skal have, via en common control dialog.

hen over formen har jeg noget tekst, med standard-farve sort.

Det jeg så gerne vil have, er en måde hvor at når en farve bliver valgt, så skal det vurderes om den er mørk eller ej.
Hvis den så er mørk, skal farven på teksten blive hvid.

Nogen ideer?
Avatar billede kabbak Professor
17. marts 2004 - 12:46 #1
If Form1.BackColor = vbWhite Then
Form1.ForeColor = vbBlack
Else
Form1.ForeColor = vbWhite
End If

ken du ikke udbygge denne
Avatar billede venne Nybegynder
17. marts 2004 - 13:15 #2
Her er en funktion, der (lidt forsimplet) laver en farve om til en gråtone.

Function gråtone(farve As Long) As Long
  Dim r As Integer
  Dim g As Integer
  Dim b As Integer
  Dim grå As Integer
 
  r = farve And &HFF&
  g = (farve \ 256) And &HFF&
  b = (farve \ 65536) And &HFF&
  grå = (r + g + b) \ 3
  gråtone = grå + 256& * grå + 65536 * grå
End Function


Den kan du fx bruge sådan:

If (gråtone(Form1.BackColor) And &HFF) < 128 Then
  Label1.ForeColor = vbWhite
Else
  Label1.ForeColor = vbBlack
End If

Du kan justere grænsen (128) hvis det ikke passer.
Avatar billede angelenglen Nybegynder
17. marts 2004 - 13:38 #3
well brugeren har også mulighed for fx at vælge rød og blå osv...

kan man ikke lave en eller anden funktion, der siger at hvis værdien er mørkere (lavere) end fx halvdelen, så skal farven skiftes?
Avatar billede angelenglen Nybegynder
17. marts 2004 - 13:39 #4
hmm okay måske kan din alligevel bruges... havde ikke set præcist hvordan den virker... prøver den lige og vender tilbage.....
Avatar billede angelenglen Nybegynder
17. marts 2004 - 13:44 #5
virker som en drøm, mange tak :)
Avatar billede venne Nybegynder
17. marts 2004 - 13:46 #6
Velbekomme ;)
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