PDA

View Full Version : سوال: کد ادیتور متن؟



mgro5862
دوشنبه 27 آبان 1387, 15:21 عصر
من تو یک برنامه نیاز به یک ادیتور متن دارم . لطفا اگه کسی برنامش رو تو ++VC داره کدش رو برام بفرسته . آدرس ایمیلم : m_roustaei58@yahoo.com

Nima_NF
سه شنبه 28 آبان 1387, 13:38 عصر
این پست برای شماست:
http://barnamenevis.org/forum/showpost.php?p=548571&postcount=3

موفق باشید

mgro5862
چهارشنبه 29 آبان 1387, 15:10 عصر
خيلي متشكرم از کمک Nima_NF .
اما فکر می کنم من نتونستم نیازم رو کامل خدمتون عرض کنم . من دانشجوی رشته نرم افزار هستم و توی یک قسمت از پروژه کلاسیم که باید اون رو با ويژوال سی بنویسم نیاز به یک ادیتور متن دارم که بوسیله آرایه دو بعدی نوشته شده باشه .
(با Win32 Console Application)
اگه کمکم کنین ممنون می شم.

Nima_NF
پنج شنبه 30 آبان 1387, 16:13 عصر
ماهیت محیط Console خیلی متفاوت هست و ساخت یک editor در آن سخت است. برای این شکل موارد باید یک محیط گرافیکی فراهم کرد که این کار در محیط console در ++VC به دلیل نداشتن رابط گرافیکی خیلی مشکل هست. در کامپایلرهای 15 سال قبل این امکان وجود دارد ولی در VC خیر.

این مطلب را هم برای یکی دیگر از کاربران گفتم:


نوشتن یک editor حرفه ای در یک محیط گرافیکی باید انجام شود(حال در console یا محیط های پیشرفته تر) و همه چیز باید توسط خودتان پیاده سازی شود، یعنی تعیین کنید که هر کارکتر و در نتیجه هر خط در مثلا 10 پیکسل قرار می گیرد و ... cursor یا همان خط چشمک زن نیز سفارشی توسط خودتان ساخته شود و نمایش داده شود و غیره.

در یک کلام اگر دنبال ساخت آن در محیط کنسول و یا سیستم عامل Dos هست، بهتر هست فراموش کنید...

اما در ویندوز یا سایر OS های جدید در حالت ساده می توانید از یک EditBox استفاده کنید و برای حالت پیشرفته تر آن(مانند Word ) می توانید یک محیط گرافیکی طراحی کنید همانند مطالب گفته شده فوق.
لینک یک آموزش کامل انگلیسی در این قسمت قرار داده شده است (http://barnamenevis.org/forum/showpost.php?p=548571&postcount=3)

در هر حال در محیط کنسول:
برای انتقال مکان نما با استفاده از توابع آن مانند SetConsoleCursorPosition (کامپایلر های تحت ویندوز)و یا gotoxy قدیمی می توانید این کار را انجام دهید ( برای مثال این دو مورد را در بخش جستجو کنید)

برای دریافت کیبرد نیز می توانید از GetKeyState و یا GetAsyncKeyState استفاده کنید که در محیط کنسول کنترل و کاربردشان سخت است:



if ( GetKeyState(VK_F1) & 0x8000 )
{
// Do something
}


کاربران زیادی وجود ندارند که به سبک قدیمی در کنسول بتوانند در این زمینه کمک کنند.
توضیحات در زمینه ایجاد محیط گرافیکی در کنسول در ++VC (http://barnamenevis.org/forum/showthread.php?t=103584)

mgro5862
دوشنبه 04 آذر 1387, 11:31 صبح
با توجه به اینکه این برنامه برای یک پروژه کلاسی هست آیا نمی توان آن را بدون استفاده از محیط گرافیکی نوشت . مثلا طوری که در داس اجرا شود و یا با داس تحت ویندوز کار کنه ؟
برای من در همین حد هم کفایت می کنه . چون من فقط نیاز به الگوریتم آن دارم و نهایتا کد های برنامه اصلی و توابع و زیربرنامه ها.