ورود

نسخه کامل مشاهده نسخه کامل : سوالات من تا جمعه !



M i L @ D
25-02-2010, 12:01
سلام دوستان عزیز ...

من قرار شنبه یه امتحان مهم عملی داشته باشم ... میخوام تا جمعه شب شما من رو در مورد سوالایی که دارم راهنمایی کنید !

این اولین سوالات :

1 - چطور میتونم یه تکست باکس رو به عنوان دکمه ی رادیویی یا همون OptionButton دربیارم ؟ مثل این عکس :

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

2 - چطور میتونم روی یک PictureBox با فشار دادن دکمه ی سمت چپ ماوس علامت * پشت سر هم چاپ کنم ؟

مرسی ...

MrGee
25-02-2010, 13:08
سوالات جالبی هستند.

1-باید چک کنی ببینی اگه option روشن بود تکس باکس هم فعال بشه و برعکس.
2-باید از از رویداد مخصوص اون استفاده کنی و همراه با فرمان print

---------- Post added at 01:08 PM ---------- Previous post was at 01:06 PM ----------


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

M i L @ D
25-02-2010, 13:44
سوالات جالبی هستند.

1-باید چک کنی ببینی اگه option روشن بود تکس باکس هم فعال بشه و برعکس.
2-باید از از رویداد مخصوص اون استفاده کنی و همراه با فرمان print

---------- Post added at 01:08 PM ---------- Previous post was at 01:06 PM ----------


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

خیلی ممنون واسه جواب ...

سوال اول :
واسه سوال اول فکر میکردم با استفاده از پنجره ی خصوصیات میشه اینکارو کرد ولی مثل اینکه اینطور نیست و باید تکست باکس رو بکشی رو قسمت Coption . در کل جواب این سوال رو گرفتم !

سوال دو :
نمیدونستم PictureBox خصوصیت Print رو داره ... پس اینم بهم یاد دادید !
ولی مشکل اینجاست که من چطوری میتونیم رنگ و سایز و مکان چاپ رو بهش معرفی کنم ؟
اینم راهنمایی کنید خیلی ممنون میشم !

Mohsen.Sh_PC
25-02-2010, 15:52
سلام
با استفاده از تابع Space() میتونی بگی چقدر جلوتر چاپ کنه.
مثلا


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

M i L @ D
25-02-2010, 16:03
سلام
با استفاده از تابع Space() میتونی بگی چقدر جلوتر چاپ کنه.
مثلا



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


خیلی ممنون دوست عزیز واسه راهنمایی ...

ولی من میخوام دقیقا وقتی کلیک کردم تو همون مختصات ماوس چاپ بشه !

ولی بازم این Space تو جاهای دیگه بدردم میخوره ... ممنون !

MrGee
25-02-2010, 18:15
باید تلفیقی از تابع print و خصوصیات CurrentY و CurrentX باشه.

M i L @ D
25-02-2010, 18:42
باید تلفیقی از تابع print و خصوصیات CurrentY و CurrentX باشه.

ممنون واسه جواب ولی تا جایی که سوادم قد میده نمیشه همراه با Print مختصاتX , Y ماوس رو مشخص کرد !

راستی با خصوصیت Pset نمیشه بجای نقطه علامت "*" رو چاپ کرد ؟ اینجوری مشکل حل میشه !

MrGee
25-02-2010, 21:26
باید از خصوصیات tab و space اون استفاده کنید.

اگه می خوایی با pset این کار رو بکنی باید یه تابع بسازی که با pset یه ستاره درست کنه
و اون وقت هر وقت رویداد رخ داد اون تابع رو صدا کنی.

M i L @ D
25-02-2010, 22:12
باید از خصوصیات tab و space اون استفاده کنید.

اگه می خوایی با pset این کار رو بکنی باید یه تابع بسازی که با pset یه ستاره درست کنه
و اون وقت هر وقت رویداد رخ داد اون تابع رو صدا کنی.

نمیشه !:37:

آخه چطوری به Tab و Space بگم همون مختصات ماوس بشه ؟ با استفاده از CurrentX و CurrentY که نمیشه !

واسه دومی هم ... نمیدونم باید تابع رو چطوری بسازم که Pset ستاره درست کنه ... اصلا شدنیه ؟

...

راستی بازم ممنون واسه جواب !

MrGee
26-02-2010, 00:11
به اندازه X باید از space استفاده کنی و به اندازه Y از Tab (اگه برعکس نگفته باشم.)

چرا نمی شه راحت هم هست.

M i L @ D
26-02-2010, 00:19
به اندازه X باید از space استفاده کنی و به اندازه Y از Tab (اگه برعکس نگفته باشم.)

چرا نمی شه راحت هم هست.

خب من دقیقا همین رو امتحان کرده بودم ولی نشد ... اینم کد :


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

جاهای X و Y رو هم عوض کردم ولی باز نشد که نشد !

_H2_
26-02-2010, 01:57
سلام
مورد 2

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

M i L @ D
26-02-2010, 10:37
سلام
مورد 2

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

وای ... مرســــــی ... شـــــد :11:

البته از اولین مورد استفاده کردم !

دومین مورد خطا میگرفت که .CreateGraphics وجود نداره !

راستی این Me چه کاربردی داره ؟

حالا چطوری کاری کنم که سایز و رنگ "*" عوض بشه ؟

مـــــمـــنـــون !

_H2_
26-02-2010, 14:07
سلام

دومین مورد خطا میگرفت که .CreateGraphics وجود نداره !
همانطور که نوشتم، کد دوم مربوط به VB2008/2010 است نه VB6-1998 !


راستی این Me چه کاربردی داره ؟
برابر this در زبان C است و حاوی اشاره گر شی جاری است.
در واقع همه توابع و فیلدها باید عضو یک Class باشند مثل ForeColor که خصیصه عضو PictureBox است و نوشته میشود PictureBox.ForeColor

در Class که در حال کدنویسی آن هستید، همواره Me به همان کلاس اشاره میکند.
چون ما درون Class فرم جاری کدنویسی میکنیم Me.PictureBox1 یعنی PictureBox1 ای که عضو فرم جاری و فعلی است.

البته درج Me (و this در C) اختیاری است ولی در زبانهای شی گرایی مثل VB7/8/9/10 کلمات جدید و مشابه Me هم وجود دارد که مفاهیم بسیار مشابه ای با Me دارند ولی در سلسه مراتب وراثتی طور دیگری عمل میکنند مثل کلمات MyBase و MyClass ...
که در این شرایط نوشتن مرجع اشاره گر میتواند به شفافیت بیشتر کد کمک کند و در هر صورت هم بالاخره نصب مالک و مملوکی متد ها و فیلدها و... را واضح تر نشان خواهد داد.

بحرحال نوشتن Me اختیاری است.


حالا چطوری کاری کنم که سایز و رنگ "*" عوض بشه ؟
کد VB2008/2010 که همان است ...
پارامتر دوم فونت (شامل نام و سایز و حالت و..)
و پارامتر سوم هم قلم مو است که میتواند یک رنگ خالص یا یک گرادیان رنگی (حالت رنگین کمان) یا یک الگو یا یک تصویر و... باشد که با آن قلم مو متنString باید ترسیم شود.

و برای VB6 هم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

M i L @ D
27-02-2010, 09:35
سلام

همانطور که نوشتم، کد دوم مربوط به VB2008/2010 است نه VB6-1998 !


برابر this در زبان C است و حاوی اشاره گر شی جاری است.
در واقع همه توابع و فیلدها باید عضو یک Class باشند مثل ForeColor که خصیصه عضو PictureBox است و نوشته میشود PictureBox.ForeColor

در Class که در حال کدنویسی آن هستید، همواره Me به همان کلاس اشاره میکند.
چون ما درون Class فرم جاری کدنویسی میکنیم Me.PictureBox1 یعنی PictureBox1 ای که عضو فرم جاری و فعلی است.

البته درج Me (و this در C) اختیاری است ولی در زبانهای شی گرایی مثل VB7/8/9/10 کلمات جدید و مشابه Me هم وجود دارد که مفاهیم بسیار مشابه ای با Me دارند ولی در سلسه مراتب وراثتی طور دیگری عمل میکنند مثل کلمات MyBase و MyClass ...
که در این شرایط نوشتن مرجع اشاره گر میتواند به شفافیت بیشتر کد کمک کند و در هر صورت هم بالاخره نصب مالک و مملوکی متد ها و فیلدها و... را واضح تر نشان خواهد داد.

بحرحال نوشتن Me اختیاری است.


کد VB2008/2010 که همان است ...
پارامتر دوم فونت (شامل نام و سایز و حالت و..)
و پارامتر سوم هم قلم مو است که میتواند یک رنگ خالص یا یک گرادیان رنگی (حالت رنگین کمان) یا یک الگو یا یک تصویر و... باشد که با آن قلم مو متنString باید ترسیم شود.

و برای VB6 هم:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

واقــــــعـــــا مـــمــنـــونــم ... توضیحات بسیار کامل بود ... کد هم که استفاده کردم ! :11:

فقط یه سوال دیگه که امیدوارم تا قبل از ساعت 12 بهش جواب داده بشه ...

چطور با Dobule Click میتونم یک متن رو دقیقا در همون مختصات ماوس چاپ کنم ؟ آخه DblClick مختصات X و Y نداره !

بازم از هـــمه ممنون ...

_H2_
27-02-2010, 11:29
سلام
برای به دست آوردن محل ماوس میتوانید از API ی GetCursorPos استفاده کنید و برای تبدیل مختصات به کنترلر جاری هم از ScreenToClient یا API کاملتر MapWindowPoints ...
البته متاسفانه مختصات کاری VB6 واحد من دراوردی Twips یوده!!! (که خوشبختانه مایکروسافت در اولین نسخه بعدی ان را اصلاح کرد)

شما اول باید برای هماهنگی با سیستم عامل ویندوز در نمایه طراحی روی PictureBox تان بروید و خصیصه ScaleType یا ScaleMode یا Scale را روی pixel قرار دهید و سپس ...

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در Vb7,8,9,10 خصیصه داخلی MousePosition و تابع PointToClient استفاده کنید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

موفق باشید.

M i L @ D
27-02-2010, 12:52
خیلی ممنون از همه ی دوستان بخصوص آقای _H2_ که واقعا کمک کردند !:11:

من رفتم واسه ی امتحان ...:45: