ورود

View Full Version : چه طور باید صفحه ای به ابعاد 400 * 400 رو به شکل صفحه شطرنج در اورد؟؟



goldpower
پنج شنبه 24 فروردین 1391, 17:37 عصر
کسی می تونه در مورد تقسیم بندی صفحه کمک کنه ؟

SlowCode
پنج شنبه 24 فروردین 1391, 18:09 عصر
عنوان تاپیک سوالیه ولی متنش جوابه. این یعنی چی؟ آموزشه؟:متعجب::گیج:

goldpower
پنج شنبه 24 فروردین 1391, 18:16 عصر
عنوان تاپیک سوالیه ولی متنش جوابه. این یعنی چی؟ آموزشه؟:متعجب::گیج:

مشکل اصلی تقسیم بندی صفحه است . چه طور باید این کار و انجام داد که به شکل بالا در بیاد و هر خونه یه ادرس داشته باشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

محسن واژدی
پنج شنبه 24 فروردین 1391, 18:29 عصر
سلام
سورس زیر زمینه فرم را شطرنجی میکند،

همچنین برای افزایش و کاهش تعداد خانه ها هم کافیست مقدار موجود درجعبه جلوی دکمه را کم و زیاد کنید


موفق باشید

goldpower
پنج شنبه 24 فروردین 1391, 18:40 عصر
سلام
سورس زیر زمینه فرم را شطرنجی میکند،

همچنین برای افزایش و کاهش تعداد خانه ها هم کافیست مقدار موجود درجعبه جلوی دکمه را کم و زیاد کنید


موفق باشید

با توجه به تصویر زیر اگه بخوایم مختصات مربع هایی رو که زیر مستطیل قرمز رنگ است داشته باشیم چی؟؟؟

محسن واژدی
پنج شنبه 24 فروردین 1391, 19:05 عصر
میبخشید متوجه منظورتون نشدم، که کدام مربع ها را منظورتون هست؟، در صورت امکان بیشتر توضیح دهید

goldpower
پنج شنبه 24 فروردین 1391, 19:41 عصر
میبخشید متوجه منظورتون نشدم، که کدام مربع ها را منظورتون هست؟، در صورت امکان بیشتر توضیح دهید

دوست عزیز موقعی که شما یه شکل مثلا مستطیل رو روی صفحه شطرنجی رسم می کنید . طول و عرض مستطیل روی تعدادی از خونه های سیاه و سفید صفحه شطرنجی میوفته که هر کدوم از اون خونه ها هم یه ادرس مثل i , j داره . حالا من ادرس اون خونه ها رو لازم دارم.

محسن واژدی
پنج شنبه 24 فروردین 1391, 21:25 عصر
کد زیر را بررسی کنید:
Private Type GetIJCorRes
GP_I As Integer
GP_J As Integer
GP_StI As Integer
GP_StJ As Integer
End Type
Dim IJCorRes As GetIJCorRes

Sub GetIJCor(ByVal X!, ByVal Y!)

Dim lStI&, lStJ&
Dim i
If X = 0 Then X = 1
If Y = 0 Then Y = 1
For i = X To 1 Step -1

If Not Point(i - 1, Y) = Point(X, Y) Then
lStI& = i
Exit For
End If
Next 'i

For i = Y To 1 Step -1
If Not Point(X, i - 1) = Point(X, Y) Then
lStJ& = i
Exit For
End If
Next 'i
IJCorRes.GP_I = Int(lStI& / lSteps&)+1
IJCorRes.GP_J = Int(lStJ& / lSteps&)+1
IJCorRes.GP_StI = lStI&
IJCorRes.GP_StJ = lStJ&

End Sub

Private Sub Command2_Click()

Dim iLWT%, iLWB
Dim iLHL%, iLHR%
Dim i, iST_I%
Dim sCorLst$
With Shape1
iLWT% = .Width
iLWB = .Width
'---
iLHL% = .Height
iLHR% = .Height
'-----------
Call GetIJCor(.Left, .Top)
For i = IJCorRes.GP_StI To .Left + .Width Step lSteps&

Call GetIJCor(i, .Top)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i
sCorLst$ = "Top line: " & vbTab & vbTab & sCorLst$ & vbNewLine & "Bottom line: " & vbTab
'-----------
Call GetIJCor(.Left, .Top + .Height)
For i = IJCorRes.GP_StI To .Left + .Width Step lSteps&
Call GetIJCor(i, .Top + .Height)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i
'-----------
sCorLst$ = sCorLst$ & vbNewLine & "Left Line:" & vbTab & vbTab
Call GetIJCor(.Left, .Top)
iST_I% = IJCorRes.GP_StI
For i = IJCorRes.GP_StJ + lSteps& To .Top + .Height Step lSteps&
Call GetIJCor(iST_I%, i)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i
'-----------
sCorLst$ = sCorLst$ & vbNewLine & "Right Line:" & vbTab
Call GetIJCor(.Left + .Width, .Top)
iST_I% = IJCorRes.GP_StI
For i = IJCorRes.GP_StJ + lSteps& To .Top + .Height Step lSteps&
Call GetIJCor(iST_I%, i)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i

MsgBox sCorLst$, vbInformation, "Rectangle Cordinates"

End With
End Sub


برای بررسی یک Command2 را روی فرم رسم کنید، نام شی مستطیل هم Shape1 باشد

موفق باشید

goldpower
پنج شنبه 24 فروردین 1391, 22:31 عصر
کد زیر را بررسی کنید:
Private Type GetIJCorRes
GP_I As Integer
GP_J As Integer
GP_StI As Integer
GP_StJ As Integer
End Type
Dim IJCorRes As GetIJCorRes

Sub GetIJCor(ByVal X!, ByVal Y!)

Dim lStI&, lStJ&
Dim i
If X = 0 Then X = 1
If Y = 0 Then Y = 1
For i = X To 1 Step -1

If Not Point(i - 1, Y) = Point(X, Y) Then
lStI& = i
Exit For
End If
Next 'i

For i = Y To 1 Step -1
If Not Point(X, i - 1) = Point(X, Y) Then
lStJ& = i
Exit For
End If
Next 'i
IJCorRes.GP_I = Int(lStI& / lSteps&)+1
IJCorRes.GP_J = Int(lStJ& / lSteps&)+1
IJCorRes.GP_StI = lStI&
IJCorRes.GP_StJ = lStJ&

End Sub

Private Sub Command2_Click()

Dim iLWT%, iLWB
Dim iLHL%, iLHR%
Dim i, iST_I%
Dim sCorLst$
With Shape1
iLWT% = .Width
iLWB = .Width
'---
iLHL% = .Height
iLHR% = .Height
'-----------
Call GetIJCor(.Left, .Top)
For i = IJCorRes.GP_StI To .Left + .Width Step lSteps&

Call GetIJCor(i, .Top)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i
sCorLst$ = "Top line: " & vbTab & vbTab & sCorLst$ & vbNewLine & "Bottom line: " & vbTab
'-----------
Call GetIJCor(.Left, .Top + .Height)
For i = IJCorRes.GP_StI To .Left + .Width Step lSteps&
Call GetIJCor(i, .Top + .Height)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i
'-----------
sCorLst$ = sCorLst$ & vbNewLine & "Left Line:" & vbTab & vbTab
Call GetIJCor(.Left, .Top)
iST_I% = IJCorRes.GP_StI
For i = IJCorRes.GP_StJ + lSteps& To .Top + .Height Step lSteps&
Call GetIJCor(iST_I%, i)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i
'-----------
sCorLst$ = sCorLst$ & vbNewLine & "Right Line:" & vbTab
Call GetIJCor(.Left + .Width, .Top)
iST_I% = IJCorRes.GP_StI
For i = IJCorRes.GP_StJ + lSteps& To .Top + .Height Step lSteps&
Call GetIJCor(iST_I%, i)
sCorLst$ = sCorLst$ & "[" & IJCorRes.GP_I & "," & IJCorRes.GP_J & "]" & " "
Next 'i

MsgBox sCorLst$, vbInformation, "Rectangle Cordinates"

End With
End Sub


برای بررسی یک Command2 را روی فرم رسم کنید، نام شی مستطیل هم Shape1 باشد

موفق باشید


جواب نداد !!!!!!
اگه می شه خودتون نمونه فرم قرار بدهید.
ممنون

محسن واژدی
جمعه 25 فروردین 1391, 06:19 صبح
نمونه زیر را بررسی کنید

موفق باشید

goldpower
جمعه 25 فروردین 1391, 09:25 صبح
نمونه زیر را بررسی کنید

موفق باشید


ممنون
اگه بشه که بعد از اجرای برنامه shape رو کاربر بکشه عالی می شه.( یه جورایی محیط paint داشته باشه )

تمام کار ها داخل picturebox انجام بشه.

محسن واژدی
جمعه 25 فروردین 1391, 11:43 صبح
سلام
کد زیر را بررسی کنید:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbKeyLButton Then
Shape1.Move X, Y, 1, 1
Shape1.Visible = True
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
If Button = vbKeyLButton Then
Shape1.Width = X - 100
Shape1.Height = Y - 160
End If
End Sub

البته خیلی دقیق نیست ولی برای حداقل نیاز مفید است، در سایت هایی مانند planet-source-code.com نمونه های مفیدی را میتوانید بیابید

موفق باشید

program2vb
شنبه 26 فروردین 1391, 17:03 عصر
مشکل اصلی تقسیم بندی صفحه است . چه طور باید این کار و انجام داد که به شکل بالا در بیاد و هر خونه یه ادرس داشته باشه؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

عزیز شما میخوای ماتریس درس کنی ؟

اگه نظورت ماتریس هست بگو برات توضیح میدم ؟

اگرم منظورتون ترسیم اشکال بفرمایید اینم سورسش امیدوارم بدردتون بخوره

موفق و پیروز باشید

یا علی .