PDA

View Full Version : راهنمایی درمورد این سورس کدها



saeed hg
دوشنبه 21 تیر 1389, 23:55 عصر
به نام دوست

با سلام. من تو دنیای برنامه نویسی با ویژوال بیسیک دات نت تازه وارد هستم و بیشتر از 2 یا 3 ماه نیست که به این دنیا وارد شدم. چند تا سوال دارم که ممنون میشم دوستان عزیز لطف کنند و جواب بدن.

1- اولی برنامه ی Picture Viewer هست که مشکلش اینه که وقتی که عکسی رو توسط برنامه 4 یه 5 بار بزرگنمایی میکنم پیکچر باکس میره روی باتن (کلید) و روی باتن رو می پوشونه.

لینک دانلود: http://www.mediafire.com/?myyjlzdmyzr

2- برنامه ساخت پازل از عکس ها که از سایت خارجی دانلود کردم و طبق توضیحات ارائه شده کد رو نوشتم اما کار نمی کنه! از خود کسی که آموزش داده بود هم پرسیدم اما جواب نداد. خیلی فکرمو مشغول کرده (صفحه ایی از سایت که نحوه ی نوشتن این برنامه رو توضیح داده بود به همراه کد نوشته شده توسط من رو داخل یه فایل با فرمت فشرده قرار دادم که لینک دانلودش رو هم اینجا فرار دادم )

لینک دانلود: http://www.mediafire.com/?1fgtn0qxdkn

3-برنامه ی Bouncing Balls Vertical ، که چند تا مشکل داره => اول: با انکه زمان شروع حرکت دو توپ رو رندم (تصادفی) انتخاب کردم اما بارها پیش اومده که دو توپ با هم شروع به حرکت می کنند، جه طور این مشکل رو حل کنم؟ دوم: چه جوری میشه کاری کرد که توپ ها به کف فرم برخورد نکنند و به جایی که با خط قرمز مشخص کردم برخورد کنند سوم: چه جوری میشه کاری کرد که توپ ها وقتی به بالای فرم برخورد می کنند به صورت مستقیم به پایین بر نگردند و وقتی به بالای فرم برخورد می کنند کمونه کنند و به صورت مورب به سمت پایین حرکت کنند؟ ( در شکل مشخص شده)


[/URL]
لینک دانلود: [URL]http://www.mediafire.com/?ef3z3g2lmh2 (http://www.photovations.com/ims/pic.php?u=5401a4MDr&i=45609)

پیشاپیش از راهنمایی های دوستان متخصصم تشکر می کنم

در پناه دوست

rasoul2023
سه شنبه 22 تیر 1389, 10:51 صبح
1- اولی برنامه ی Picture Viewer هست که مشکلش اینه که وقتی که عکسی رو توسط برنامه 4 یه 5 بار بزرگنمایی میکنم پیکچر باکس میره روی باتن (کلید) و روی باتن رو می پوشونه.


1- با استفاده از Contax menu strip ( اگه از لحاظ املایی اشتباه نوشتم ببخشید) یک منو راست کلیک بساز و کدهای داخل باتن را داخل منوهای اون بنویس .

2- در Event Resize شرطی را تعریف کن که اگه هنگام ریسایز شدن از یه حدی بزرگتر شد به اندازه از پیش تعریف شده برسه .

بازم راه حل اول را پیشنهاد میکنم .

Shahram_Shobeiri
سه شنبه 22 تیر 1389, 13:32 عصر
وقتی که عکسی رو توسط برنامه 4 یه 5 بار بزرگنمایی میکنم پیکچر باکس میره روی باتن (کلید) و روی باتن رو می پوشونه.

یه پنل بنداز روی فرمت و خاصیت autoscroll اونو true کن. بعد picturebox رو بنداز تو اون پنله و موقعیت قرار گیری picturebox رو 0 و 0 ست کن.

mahdi1373
چهارشنبه 23 تیر 1389, 15:19 عصر
سلام،
پیرامون برنامه 3:
1.نمیدونم منظورت از کمونه چیه؟ خوب اگه اون قسمت از کد هارو که غیر فعالش کردی، فعالش کنی، درست میشه دیگه!! ولی اگه منظورت اینه که به طرز غیر قابل پیش بینی مسیرش رو در برخورد ها عوض کنه، باید پس از هر برخورد، به تناسب، این ها رو دوباره اجرا کنی:

m_dx = rnd.Next(3, 5)
m_dy = rnd.Next(3, 5)

m_dx1 = rnd1.Next(1, 6)
m_dy1 = rnd1.Next(1, 6)
2.در مورد مشکل آخرت(بجای برخورد با زمین ..) در این کد برنامه ات:

If m_Y < 0 Then
m_dy = -m_dy



ElseIf m_Y + 50 > Me.ClientSize.Height Then
m_dy = -m_dy


End If
بجای صفر، این:

Me.ClientSize.Height -line.top
رو وارد کن.(line اسم خطه)

saeed hg
پنج شنبه 24 تیر 1389, 00:08 صبح
1- با استفاده از Contax menu strip ( اگه از لحاظ املایی اشتباه نوشتم ببخشید) یک منو راست کلیک بساز و کدهای داخل باتن را داخل منوهای اون بنویس .

2- در Event Resize شرطی را تعریف کن که اگه هنگام ریسایز شدن از یه حدی بزرگتر شد به اندازه از پیش تعریف شده برسه .



ممنون از اینکه وقت صرف کردید و اهمیت دادید و جواب دادید اما:
در مورد جواب 1 باید بگم که راستش نمی خوام به جای حل مسئله صورت مسئله رو پاک کنم
و در مورد 2- در این مورد زیاد کارایی نداره

saeed hg
پنج شنبه 24 تیر 1389, 00:43 صبح
یه پنل بنداز روی فرمت و خاصیت autoscroll اونو true کن. بعد picturebox رو بنداز تو اون پنله و موقعیت قرار گیری picturebox رو 0 و 0 ست کن.

دوست عزیز از شما هم ممنونم، بهتر شد اما حل نشد! الان دیگه پیکچر باکس نمیره روی باتن (کلید) اما تصویر هم خوب بزرگنمایی نمی شه.
از شما عزیزان خواهش میکنم اگه ممکنه سورس کدی رو که گذاشتم برای دانلود رو دریافت کنید تا کاملاً بتونید متوجه مشکل بشید، حجم زیادی هم نداره خیلی سریع دانلود می شه.

saeed hg
پنج شنبه 24 تیر 1389, 00:54 صبح
سلام،
پیرامون برنامه 3:
1.نمیدونم منظورت از کمونه چیه؟
از شما هم متشکرم. منظورم از کمونه کردنو توشکل نشون دادم یعنی وقتی مثلاً توپ قرمز به بالای فرم برخورد می کنه به صورت راست و مستقیم پایین نیاد و به صورت کج و مورب به سمت پایین حرکت کنه، واضحتر بگم شما وقتی توپی رو با زاویه به سمت سقف اتاق پرتاب می کنی آیا مستقیم پایین میاد؟ شما درست میگید این مشکل با فعال سازی اون کدهایی که غیر فعال کردم درست می شه!
مشکل دو توپ با هم شروع به حرکت می کنند رو چه جوری می شه حل کرد؟؟
یه سوال جدید: اون خط قرمز که تو شکل می بینید رو با نرم افزار paint ویندوز درست کردم، چه جوری می شه این خط رو تو ویبی دات نت روی فرم ایجاد کرد؟ من درست کردم اما مثل عکسی که گذاشتم تو سایت نشد و یه خط کوچیک ایجادشد!

مسئله ی پازل رو کسی نمی تونه حل کنه؟
من از دوستان barnamenevis.org خیلی بیشتر از اینها انتظار داشتم و حساب جداگانه ایی روی کمک شما باز کرده بودم. لطفاً ناامیدم نکنید

mahdi1373
پنج شنبه 24 تیر 1389, 14:07 عصر
راستش من چیزی راجع به این که چرا بعضی موقع ها با هم حرکت می کنند نفهمیدم. ولی بازم روش کار می کنم.
جواب سوال جدید:
از قسمت Toolbox>Visual Basic PowerPacks>LineShape رو انتخاب کن. نمیدونم منظورت از خط کوچیک چیه؟ این کارو بکن، اگه نشد بگو.
اگه وقت کردم پازل رو هم برات درست می کنم.

saeed hg
پنج شنبه 24 تیر 1389, 15:13 عصر
راستش من چیزی راجع به این که چرا بعضی موقع ها با هم حرکت می کنند نفهمیدم. ولی بازم روش کار می کنم.
جواب سوال جدید:
از قسمت Toolbox>Visual Basic PowerPacks>LineShape رو انتخاب کن. نمیدونم منظورت از خط کوچیک چیه؟ این کارو بکن، اگه نشد بگو.
اگه وقت کردم پازل رو هم برات درست می کنم.

با کد زیر مشکل کشیدن خط روی فرم رو حل کردم:


dim Linegraphic as system.drawing.graphics=me.creategraphics
dim x1 as integer = 0
dim x2 as integer = 292
dim y1 as integer = 208
dim y2 as integer = 209
Linegraphic.drawline(pens.black,x1,y1,x2,y2)
Linegraphic.dispose()


چه جوری میشه مکان توپ ها در هر لحظه رو بدست آورد؟ و در واقع قسمت سوال از کاربر رو کامل کرد؟

mohammad.moosaei
پنج شنبه 24 تیر 1389, 15:26 عصر
یک برنامه براتون آماده کردم شاید مشکل درست کردن پازلتون با این برنامه حل بشه :

http://www.4shared.com/file/og6nwdHW...al_Puzzel.html

mahdi1373
پنج شنبه 24 تیر 1389, 19:14 عصر
چه جوری میشه مکان توپ ها در هر لحظه رو بدست آورد؟ و در واقع قسمت سوال از کاربر رو کامل کرد؟ عوض شدن مکان توپ ها از طریق رویداد Form1_Paint انجام میگیره. مکان توپ ها در هر لحظه m_X , m_Y, m_X1, m_Y1 است. فقط باید آنها را در رویداد بدست بیاری. به کد زیر توجه کن:

e.Graphics.Clear(Me.BackColor)
e.Graphics.FillEllipse(Brushes.BlueViolet, m_X, m_Y, 50, 50)
e.Graphics.DrawEllipse(Pens.Black, m_X, m_Y, 50, 50)

e.Graphics.FillEllipse(Brushes.Red, m_X1, m_Y1, 50, 50)
e.Graphics.DrawEllipse(Pens.Black, m_X1, m_Y1, 50, 50)
مکان x اولی:m_Y
مکان y اولی:m_X
مکان x دومی:m_X1
مکان y دومی:m_Y1

فقط دقت کن که این مختصات برای گوشه سمت چپ مربع محیطی دایره است.

saeed hg
پنج شنبه 24 تیر 1389, 21:39 عصر
خب ... برنامه ی Bouncing Balls Vertical تقریباً کامل شده یعنی قسمت سوال از کاربر و اینکه برنامه تشخیص بده کاربر درست جواب داده یا نه کامل شده، البته به لطف و با کمک دوستان عزیز مخصوصاً mahdi1373 (http://barnamenevis.org/forum/member.php?u=97124) عزیز.
اما مشکل <توپ به خط برخورد کنه و به زمین نخوره > هنوز حل نشده و کد
Me.ClientSize.Height -line.topزیر خط دار نمایش داده میشد و کامپایلر ویبی دات نت ارور میداد( به جای کلمه ی line من Linegraphic رو قرار دادم)

سوال دوم: چه جوری میشه خطی رو که روی فرم رسم کردم رو ضخیمتر و کلفتر رسم کرد.(منظورم اندازه ی قلم)

mahdi1373
جمعه 25 تیر 1389, 12:09 عصر
سوال اول:خوب به اون صراحت هم نباید اون چیزی رو که من گفتم رو می نوشتید! اون رو ولش کن! این رو:


If m_Y < 0 Then
m_dy = -m_dy



ElseIf m_Y + 50 > Me.ClientSize.Height Then
m_dy = -m_dy


End If

تبدیل کن به:


If m_Y < 0 Then
m_dy = -m_dy



ElseIf m_Y + 50 > line.Y1 Then
m_dy = -m_dy


End If

سوال دوم:border width این خاصیت را تنظیم می کند.

saeed hg
جمعه 25 تیر 1389, 22:09 عصر
mahdi1373 عزیز خوشم میاد که کاملاً، به صورت غیر مستقیم آدم رو راهنمایی می کنی و به جواب می رسونی:تشویق:. به جای line.y عدد گذاشتم مشکل حل شد، وقت کردم برنامه ی کامل شده ی bouncing ball vertical رو میزارم برای دانلود.
حالا مونده picture viewer و پازل! لطفاً در این مورد واضحتر راهنمایی کنید، اخه من تازه کار هستم.