Kim Larsen skrev:
> Er der nogen der kender til en control, som picturebox, med mulighed
> for at kunne scrolle i billedet, hvis billedet er størrer end den form
> billedet vises på.
Du kunne jo evt. lave det selv.
Placér 2 Picture-bokse (Picture1 må gerne være lidt stor, men ikke for
stor), 1 VScroll, 1 HScroll og 1 CommandButton på en form og sæt følgende
properties:
Picture1
TabStop = False
Picture2
AutoRedraw = True
AutoSize = True
BorderStyle = 0 (None)
VScroll1 & HScroll1
LargeChange = 50
SmallChange = 10
TabStop = False
Command1
TabStop = False
Skriv følgende kode ind og kør programmet... så skal du bare se!
Private Sub Command1_Click()
MsgBox "Jeg ved ikke hvad denne knap kan " & _
"bruges til, men den er da meget flot, ikke?"
End Sub
Private Sub Form_Load()
SetProperties
LoadGraphic
End Sub
Private Sub SetProperties()
Set Picture1.Container = Me
Set Picture2.Container = Picture1
Set VScroll1.Container = Picture1
Set HScroll1.Container = Picture1
Set Command1.Container = Picture1
VScroll1.Top = 0
HScroll1.Left = 0
VScroll1.Width = 255
HScroll1.Height = 255
VScroll1.ZOrder 0
HScroll1.ZOrder 0
Command1.ZOrder 0
Command1.Caption = "?"
Command1.Width = 255
Command1.Height = 255
End Sub
Private Sub HScroll1_Change()
Picture2.Left = -HScroll1.Value * 15
End Sub
Private Sub HScroll1_Scroll()
Picture2.Left = -HScroll1.Value * 15
End Sub
Private Sub Picture1_Resize()
VScroll1.Left = Picture1.Width - 315
VScroll1.Height = Picture1.Height - 315
HScroll1.Top = Picture1.Height - 315
HScroll1.Width = Picture1.Width - 315
Command1.Left = Picture1.Width - 315
Command1.Top = Picture1.Height - 315
VScroll1.Enabled = (Picture2.Height > VScroll1.Height)
HScroll1.Enabled = (Picture2.Width > HScroll1.Width)
VScroll1.Max = (Picture2.Height - VScroll1.Height) \ 15
HScroll1.Max = (Picture2.Width - HScroll1.Width) \ 15
End Sub
Private Sub LoadGraphic()
' Her tegner/loader du noget ind i Picture2.
' Husk også at sætte Width og Height, hvis
' AutoSize ikke er sat til True eller du ikke
' loader en fil, men selv tegner noget.
' Lige nu loader den Skyer.bmp i Windows-bib.:
' (forudsat at du har det billede)
Picture2.Picture = LoadPicture("C:\Windows\Skyer.bmp")
Picture2.Left = 0
Picture2.Top = 0
VScroll1.Value = 0
HScroll1.Value = 0
Picture1_Resize
End Sub
Private Sub VScroll1_Change()
Picture2.Top = -VScroll1.Value * 15
End Sub
Private Sub VScroll1_Scroll()
Picture2.Top = -VScroll1.Value * 15
End Sub
Du spørger måske hvorfor jeg også har placeret en CommandButton der, når den
ikke bruges til noget - men det gør den faktisk: Den bruges til at dække for
billedet, som ligger nedenunder. Du kan jo prøve at fjerne den og se hvordan
det ser ud.
- Bjarke Walling Petersen