الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أرجو المساعدة فيما يخص أشرطة التمرير vscroll و hscroll

مغلق
بدأه a7sanwa7ed في 24 فبراير 2007 · 6 رد · 1,458 مشاهدة · في لغة Ms Visual Basic 6 وما قبلها من إصدارات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بعد التحية والإحترام

يا خوان باقي في عقلي فيوز واحد بس :blink:

قمت ببناء فورم بأبعاد معينة ( طول 8000 و عرض 8000 ) و لأن عدد و حجم الأدوات أكبر من حجم الفورم قمت بوضع جميع الأدوات في picturebox بالابعاد التالية ( طول 13250 و عرض 7500 ) و أرغب في وضع شريط تمرير رأسي ليقم بإظهار باقي العناصر الموجودة بلأسفل

و لكن للأسف فشلت فشلا ذريعا <_<

على الرغم من إضافة الأكواد إلى أن الشريط يختفي عند تجربة الفورم

أتمنى أن أجد ليدكم الكود الصحيح او الطريقة الصحيحة لإستخدام أشرطة التمرير

مع العلم أن الفورم لا يستدعي إضافة شريط تمرير أفقي

ساعدوني أخوكوم مزنوووووووووووووووووووووء :^)

و لكم تحياتي

الكود المستخدم :

Private Sub Form_Resize()

If Me.ScaleHeight < Picmain.Height Then

VScroll1.Move 0, 0, VScroll1.Width, Me.ScaleHeight - HScroll1.Height

Picmain.Left = VScroll1.Width

VScroll1.Min = 0

VScroll1.Max = -(Picmain.Height - Me.ScaleHeight)

VScroll1.SmallChange = 50

VScroll1.LargeChange = 500

Else

Picmain.Left = 0

VScroll1.Move Me.ScaleWidth + VScroll1.Width

End If

If Me.ScaleWidth < Picmain.Width Then

HScroll1.Move VScroll1.Width, Me.ScaleHeight - HScroll1.Height, -Me.ScaleWidth - VScroll1.Height

HScroll1.Min = 0

HScroll1.Max = (Picmain.Width - Me.ScaleWidth)

HScroll1.SmallChange = 50

HScroll1.LargeChange = 500

Else

HScroll1.Move 0, Me.ScaleHeight + HScroll1.Height

End If

End Sub

تم تعديل هذه المشاركة بواسطة a7sanwa7ed في 24 فبراير 2007 في 02:30

336.jpg
#2

السلام عليكم ورحمة الله وبركاته

اقتباس
يا خوان باقي في عقلي فيوز واحد بس
تأكد انه كافي لتكمل برنامجك :lol:
اقتباس
و لكن للأسف فشلت فشلا ذريعا <_<

نذكرني عندما كنت أعمل برنامجي الأول -_-

شايف هذا الكود :blink:

Option Explicit
Dim XHi, XLo, YHi, YLo, StopDraw


Private Sub Form_Load()

	'''''''''''''''''''''''''''''''''''''
	Call Form_Resize


	If picInner.ScaleWidth > picOuter.ScaleWidth Or picInner.ScaleHeight > picOuter.ScaleHeight Then
		picInner.Move 0, 0
	Else
		If picInner.ScaleWidth < picOuter.ScaleWidth And picInner.ScaleHeight < picOuter.ScaleHeight Then
			picInner.Move (picOuter.ScaleWidth - picInner.Width) \ 2, (picOuter.ScaleHeight - picInner.Height) \ 2
		Else
			picInner.Move 0, 0
		End If
	End If
	DoEvents

	picInner.Picture = picInner.Image

End Sub

' Position the controls.
Private Sub Form_Resize()
	Dim got_wid As Single
	Dim got_hgt As Single
	Dim need_wid As Single
	Dim need_hgt As Single
	Dim need_hbar As Boolean
	Dim need_vbar As Boolean

	'If WindowState = vbMinimized Then Exit Sub

	need_wid = picInner.Width + (picOuter.Width - picOuter.ScaleWidth)
	need_hgt = picInner.Height + (picOuter.Height - picOuter.ScaleHeight)
	got_wid = ScaleWidth
	got_hgt = ScaleHeight

	' See which scroll bars we need.
	need_hbar = (need_wid > got_wid)
	If need_hbar Then got_hgt = got_hgt - hbarScroller.Height

	need_vbar = (need_hgt > got_hgt)
	If need_vbar Then
		got_wid = got_wid - vbarScroller.Width
		If Not need_hbar Then
			need_hbar = (need_wid > got_wid)
			If need_hbar Then got_hgt = got_hgt - hbarScroller.Height
		End If
	End If

	picOuter.Move 0, 0, got_wid, got_hgt

	If need_hbar Then
		hbarScroller.Move 0, got_hgt, got_wid
		hbarScroller.Visible = True
	Else
		hbarScroller.Visible = False
	End If

	If need_vbar Then
		vbarScroller.Move got_wid, 0, vbarScroller.Width, got_hgt
		vbarScroller.Visible = True
	Else
		vbarScroller.Visible = False
	End If

	' Set the scrollbar properties.
	SetScrollBars
End Sub

Private Sub hbarScroller_Change()
	picInner.Left = hbarScroller.Value
End Sub

Private Sub hbarScroller_Scroll()
	picInner.Left = hbarScroller.Value
End Sub



Private Sub vbarScroller_Change()
	picInner.Top = vbarScroller.Value
End Sub

Private Sub vbarScroller_Scroll()
	picInner.Top = vbarScroller.Value
End Sub

' Set scroll bar properties.
Private Sub SetScrollBars()
	vbarScroller.Min = 0
	vbarScroller.Max = picOuter.ScaleHeight - picInner.Height
	vbarScroller.LargeChange = picOuter.ScaleHeight
	vbarScroller.SmallChange = picOuter.ScaleHeight / 5

	hbarScroller.Min = 0
	hbarScroller.Max = picOuter.ScaleWidth - picInner.Width
	hbarScroller.LargeChange = picOuter.ScaleWidth
	hbarScroller.SmallChange = picOuter.ScaleWidth / 5
End Sub

تقدر تسخدمه و إن شاء الله ينفعك (h)

بس لا تقولي

أخي المزمجر بدي شرح الكود بالتفصيل

لأن وجعني راسي :wacko: من

Width Height Top

بالتوفيق

و السلام عليكم

NOUR_Scroller.rar

ألا بذكر الله تطمئن القلوب

#3

وااااااااااااااااااااااااااااااااااااو

يعطيك العافية و مازولا و العربي

مشكووووووووووووووووووور على الكود

الحمد لله لحقتني قبل آخر فيوز

الله يجعلها في موازين حسناتك

و تحياتي

336.jpg
#4

الأخ الفاضل ...

ScrollWindow.zip

Private Sub Form_Load()
	VScroll1.Max = picMain.Height - Frame1.Height
End Sub

Private Sub VScroll1_Change()
	picMain.Top = -VScroll1.Value
End Sub

كذلك يوجد مثال مع الشرح فى: http://vb-helper.com/howto_scrolled_window.html

شكراً

Eng. Usama El-Mokadem

Nothing is impossible, the word impossible itself says that: I M - Possible

#5

السلام عليكم

يعطيكم العافيه ومشكورين

لكن كيف اتحكم في توجيهه الى اعلى واسفل

وشكرا

سلام

get-7-2007-4nw_net_hbj46tna.jpg
#6
/index.php?showtopic=126575

موقع البرنامج

مبارك لشعب تونس photo-thumb-42837.png

#7

الله يعطيك العافيه حريف

مشكور

get-7-2007-4nw_net_hbj46tna.jpg

هذا الموضوع مغلق.

مواضيع مشابهة