Visual Basic 6: Label - ForeColor

Programovacie jazyky, rady, poradňa...
Gregory House
Zablokovaný
Zablokovaný
Príspevky: 109
Registrovaný: 12 jún 2009, 19:33

Visual Basic 6: Label - ForeColor

Príspevok od používateľa Gregory House »

Prepáčte, že dávam dve témy za sebou, ale práve ma napadlo, že ešte potrebujem niečo vedieť. Mám Form1 a ten má Čierne pozadie. V ňom mám Labe1, v ktorom je napísané: Nová hra a text je žltej farby. Potrebujem kód taký, že keď držím myš nad Labelom1 tak sa farba zmení na červenú a keď dám myš preč z Label1 tak sa farba textu zmení späť na žltú

P.S. Nemusíte mi vypisovať čísla a RGB kód na tie farby, stačí ak napíšete

Kód: Vybrať všetko

Label1.ForeColor = červená
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

to spravis cez udalost.. normalne klikni 2x pravim v designe na ten label a len event zmen na mousehover a len nastav ten forecolor a potom zas to iste 2x nato klikni a tam zas nastav mouseleave a tam si daj aku chces forecolor ked z toho zides mysou
Gregory House
Zablokovaný
Zablokovaný
Príspevky: 109
Registrovaný: 12 jún 2009, 19:33

Príspevok od používateľa Gregory House »

refr0 napísal:to spravis cez udalost.. normalne klikni 2x pravim v designe na ten label a len event zmen na mousehover a len nastav ten forecolor a potom zas to iste 2x nato klikni a tam zas nastav mouseleave a tam si daj aku chces forecolor ked z toho zides mysou
2x pravym? Nemyslis ty nahodou Visual Basic 2008? Nenasiel som ziadne mousehover a mouseleave. Prosim mohol by si to upresnit? Ako to myslis ze cez udalost? V programovani som len zaciatocnik tak mne to treba trochu lepsie vysvetlit. Dik. :wink:
refr0
Star
Star
Príspevky: 521
Registrovaný: 26 nov 2005, 10:55
Bydlisko: Trenčín
Kontaktovať používateľa:

Príspevok od používateľa refr0 »

jaj som si nevsimol ze 6 :D v 6 som este ani nerobil tak neviem ako to je tam :D takto sa to robi v 2008
Gregory House
Zablokovaný
Zablokovaný
Príspevky: 109
Registrovaný: 12 jún 2009, 19:33

Príspevok od používateľa Gregory House »

Ak by mal este niekto odpoved, prosim napiste
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

vo VB6 mousehover ani mouseleave asi nie je, tam je to tuším iba cez MouseMove (mousemove na label bude meniť farbu, mousemove na formulari bude meniť label zase do pôvodnej farby)

Kód: Vybrať všetko

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, _
    X As Single, Y As Single)
      Label1.ForeColor= vbRed
End Sub

Private Sub Form1_MouseMove(Button As Integer, Shift As Integer, _
    X As Single, Y As Single)
      Label1.ForeColor= vbYellow
End Sub
Skús takto
Gregory House
Zablokovaný
Zablokovaný
Príspevky: 109
Registrovaný: 12 jún 2009, 19:33

Príspevok od používateľa Gregory House »

audiotrack napísal:vo VB6 mousehover ani mouseleave asi nie je, tam je to tuším iba cez MouseMove (mousemove na label bude meniť farbu, mousemove na formulari bude meniť label zase do pôvodnej farby)

Kód: Vybrať všetko

Private Sub Label1_MouseMove(Button As Integer, Shift As Integer, _
    X As Single, Y As Single)
      Label1.ForeColor= vbRed
End Sub

Private Sub Form1_MouseMove(Button As Integer, Shift As Integer, _
    X As Single, Y As Single)
      Label1.ForeColor= vbYellow
End Sub
Skús takto
To som skúšal, ale keď mám 50 labelov tak keď tú myš pohnem na ne rýchlo alebo ak sú nalepené na sebe, tak sa farba nezmení na pôvodnú. Nepoznáš ešte niečo, alebo nedá sa tam dať niečo také, že

Kód: Vybrať všetko

Private Sub Form1_MouseMove, Label2_MouseMove, Label3_MouseMove(Button As Integer, Shift As Integer, _
    X As Single, Y As Single)
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa weroro »

no ja PHP absolutne neviem.. ale tak ma napadlo ze ak existuje v PHP nieco ako HIT TEST tak by si to mohol pouzit aby sa ti tie farby zmenily aj ked hybes myskou rychlo.. HIT TEST sa casto pouziva prave koly tomuto vo flashi.. preto ma to napadlo.. flash viem ale PHP ee :o(
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

weroro napísal:no ja PHP absolutne neviem.. ale tak ma napadlo ze ak existuje v PHP nieco ako HIT TEST tak by si to mohol pouzit aby sa ti tie farby zmenily aj ked hybes myskou rychlo.. HIT TEST sa casto pouziva prave koly tomuto vo flashi.. preto ma to napadlo.. flash viem ale PHP ee :o(
kto tu čo spomínal s php? a o žiadnom hit test v php neviem
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa weroro »

SRY stale sa to tu omiela oklo PHP vsetko.. a dako som si neuvedomil ze je to VB6 moja chyba.. len som chcel navrhnut mozne riesenie.. ak teda existuje nieco take vo VB6 ..tak to treba skusit.. (HIT TEST)
Gregory House
Zablokovaný
Zablokovaný
Príspevky: 109
Registrovaný: 12 jún 2009, 19:33

Príspevok od používateľa Gregory House »

audiotrack napísal:kto tu čo spomínal s php? a o žiadnom hit test v php neviem
Ozaj, nevieš niečo také s funkciou If?
Myslím niečo takéto:

Kód: Vybrať všetko

If Label1.MouseMove = True Then
Label1.ForeColor = vbRed
Else
Label1.ForeColor = vbYellow
End If

If Label2.MouseMove = True Then
Label2.ForeColor = vbRed
Else
Label2.ForeColor = vbYellow
End If
atď...
Viem, že taká funkcia .MouseMove tam nie je, ale či sa to nedá spraviť nejako podobne?
manager666
Star
Star
Používateľov profilový obrázok
Príspevky: 642
Registrovaný: 12 aug 2007, 13:29

Príspevok od používateľa manager666 »

Odpoved je jednoducha:
Jednoducho na kazdy prvok Label musis do udalosti MouseMove pridat to co je v udalosti Form_MouseMove okrem toho prvku, nad ktorym je aktualne pohyb mysi, pren bude ina farba. Cize ked mas 50labelov, tak v udalosti Form_MouseMove bude:
Label1.BackColor = Farba
...
Label50.BackColor = Farba
a teda napr. pre Label10_MouseMove bude to iste ako vo Form_MouseMove, avsak s tym rozdielom, ze Label10.BackColor = FarbaVybratehoPrvku

p.s. 50labelov pouzivat s inym nazvom je nonsens, cize odporucam pouzit vlastnost Index a pristupovat k rovnako nazvanym 50labelom cez neho.
:wink:
Gregory House
Zablokovaný
Zablokovaný
Príspevky: 109
Registrovaný: 12 jún 2009, 19:33

Príspevok od používateľa Gregory House »

manager666 napísal:Odpoved je jednoducha:
Jednoducho na kazdy prvok Label musis do udalosti MouseMove pridat to co je v udalosti Form_MouseMove okrem toho prvku, nad ktorym je aktualne pohyb mysi, pren bude ina farba. Cize ked mas 50labelov, tak v udalosti Form_MouseMove bude:
Label1.BackColor = Farba
...
Label50.BackColor = Farba
a teda napr. pre Label10_MouseMove bude to iste ako vo Form_MouseMove, avsak s tym rozdielom, ze Label10.BackColor = FarbaVybratehoPrvku

:wink:
Takto som to robil, ale nakoniec som sa na to vykašľal ale díky. Myslím, že sa už asi viac nedozviem. Spravím to cez obyčajné Commandy :) Díky.
Napísať odpoveď