1. U Fake_MouseMove na pocetku stavi
Code:
If Y < 0 Then Exit Sub
If Y > Thumb.Height Then Exit Sub
If HSlider.xLeft < X Then Exit Sub
If X > HSlider.lWidth Then Exit Sub
U Fake_MouseMove imas ovaj refresh koji pravi flicker. Ako stignem pogledacu kako moze da se sredi
2. Evo ideje. Treba da imas jednu klasu koja predstavlja glavni objekat (container, na kome se nalazi sve ostalo, treba da ima metode AddObject, RemoveObject, Refresh, MoveObject, ...). Svaki objekat koji se nalazi na containeru treba opet da bude zasebna klasa, koja izmedju ostalog ima i proeprty Zorder . E sad, container klasa sadrzi kolekciju svih objekata (ovih drugih klasa) koji se nalaze "na njoj" i zgodno bi bilo da je ta kolekcija sortirana po zorderu, ali u principu ne mora. Kad se desi MouseDown event, njega handleuje container klasa i to tako sto trazi iznad kog objekta je mouse pointer i uzima onaj sa najmanjim zorderom (zato je zgodno da kolekcija bude sortirana po zorderu) i poziva njegov event handler za taj dogadjaj.
3.
Code:
Public Enum RGBColor
gcRed = 1
gcBlue = 2
gcGreen = 3
End Enum
Public Function GetRGBColor(ByVal Color As String, ColorPart As RGBColor) As Long
'extract de RGB color from a value
Dim strColor As String
strColor = Right$("000000" & Hex$(Color), 6)
Select Case ColorPart
Case gcRed
GetRGBColor = Val("&h" & Right$(strColor, 2))
Case gcGreen
GetRGBColor = Val("&h" & Mid$(strColor, 3, 2))
Case gcBlue
GetRGBColor = Val("&h" & Left$(strColor, 2))
End Select
End Function
'Usage:
'MsgBox GetRGBColor("&HFFFFFF", gcBlue)
4. Evo jedan sample u attachmentu, a za vise vidi
Google