01. april 2006 - 23:23Der er
13 kommentarer og 1 løsning
For meget tekst?
Hej.
Jeg er igang med et program. Men så skrev jeg for meget et sted. Så ville jeg godt spørge hvordan man gør så man kan scroll ned lige som på en hjemmeside..
Jo. alt kan lade sig gøre, det her er måske ikke det nemmeste, men det kan lade sig gøre! hvad er din tekst skrevet i? En tekst-boks ?? så er det nemt! En label ?? Det kan da lade sig gøre :)
Hvis det er en tekstboks har tekstboksen en egenskab som hedder Scrollbars, som enten kan sættes til: 0 - None (default) 1 - Horizontal 2 - Vertical 3 - Both
Ok, jeg er med, kigger lige på det ! - ville nok foreslå at man benyttede faneblade eller noget lignende, men det er jo ikke et svart på spørgsmålet! I'm on it !! :p
Her har du tp knapper, knappen cmd_up og knappen cmd_down, ideen er simpel og virker, men kræver nok lidt omskrivning før det er perfekt:
'** START **
Private Sub cmd_up_Click() Dim objCtl As Object On Error Resume Next For Each objCtl In Controls If objCtl.Name <> "cmd_up" And objCtl.Name <> "cmd_down" Then objCtl.Top = objCtl.Top - 100 End If Next End Sub
Private Sub cmd_down_Click() Dim objCtl As Object On Error Resume Next For Each objCtl In Controls If objCtl.Name <> "cmd_up" And objCtl.Name <> "cmd_down" Then objCtl.Top = objCtl.Top + 100 End If Next End Sub
Private Sub Form_Load() VScroll1.Max = get_max() VScroll1.Min = get_min() End Sub
Private Sub VScroll1_Change() Dim objCtl As Object, this_min As Integer this_min = get_min() 'VScroll1.Value On Error Resume Next For Each objCtl In Controls If objCtl.Name <> "VScroll1" Then objCtl.Top = (VScroll1.Value - VScroll1.Min) + (objCtl.Top - this_min) End If Next End Sub
Private Function get_max() As Integer get_max = Form1.Height End Function
Private Function get_min() As Integer Dim objCtl As Object, min_top_value As Integer min_top_value = get_max() On Error Resume Next For Each objCtl In Controls If objCtl.Name <> "VScroll1" Then If objCtl.Top < min_top_value Then min_top_value = objCtl.Top End If Next get_min = min_top_value End Function
ahh, er vist kommet til at bytte om på hvad der er op og ned :s Skal jeg lige rette det ?? Og så kan jeg jo også lige rette at det næsten ikke flytter sig når man trykker på knapperne !
ahh, jeg giver op for nu, mit hovede er timeligt smadre, sorry ... Hvis du er meget interesseret i at jeg laver det, så kan du skrive til mig på vbs snabela has prik dk
okay, men det jeg har lavet, virker det ikke fint nok ?? Den første skal du lave to 'CommandButton'´s , enholdsvis ved navn cmd_up cmd_down
og så skulle det hele gerne rykke på sig når du klikker på disse !!
I den anden skal du lave en VScroolBar Og så skulle det gerne rykke på sig når du klikker henholdsvis op eller ned ... Jeg skal se på det så hurtigt som muligt, men jeg har desværre en masse overarbejde denne uge, og da jeg har to jobs at passe bliver det nok trængt :s
hmm, her er vist noget, ikke så pænt, men det virker vist !!
'** START **
Private Sub Form_Load() VScroll1.Max = get_max() / 100 VScroll1.Min = get_min() / 100 End Sub
Private Sub VScroll1_Change() Dim objCtl As Object, this_min As Integer this_min = get_min() On Error Resume Next For Each objCtl In Controls If objCtl.Name <> "VScroll1" Then objCtl.Top = VScroll1.Max - ((VScroll1.Value * 100)) + (objCtl.Top - this_min) End If Next End Sub
Private Function get_max() As Integer get_max = Form1.Height End Function
Private Function get_min() As Integer Dim objCtl As Object, min_top_value As Integer min_top_value = get_max() On Error Resume Next For Each objCtl In Controls If objCtl.Name <> "VScroll1" Then If objCtl.Top < min_top_value Then min_top_value = objCtl.Top End If Next get_min = min_top_value End Function
'** SLUT **
Skal nok lige rette fejl og skrive kommantarer når jeg får tid :p
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.