PDA

View Full Version : مبتدی: مشکل کشیدن یک شکل با Mouse



S30S60
یک شنبه 14 فروردین 1390, 13:02 عصر
سلام
کسایی که تازه سراغ برنامه نویسی در دلفی رفتن(مثل من) حتما یه بار به تجربه ساخت اشیا مربع،دایره و.. در دلفی و Canvas داشتن استفاده از رویداد های موس و کشیدن یه مربع خیلی ساده است اما مشکل اینه که در حال کشیدن شئی(فرض مریع) وقتی موس رو برمی گردونیم شکل بهم می ریزه و هزار تا مربع روی هم قرار می گیرن.این مشکل خیلی منو اذیت کرد گفتم شاید کسایی باشن مثله من با این
مشکل برخوردن .و
اگه بنده از خاصیت Canvas.Pen.Mode استفاده می کردم حتما اوضاع فرق می کرد
این کد بر روی یک Image یک شکل مربع رسم می کنه(منبع هم یک سورس دلفی)

mbshareat
دوشنبه 15 فروردین 1390, 17:44 عصر
با سلام
من بارها خواستم توی VB و Delphi برنامه ترسیم گرافیکی بسازم و همیشه هم کار اونقدر پیچیده شده که گذاشتم کنار.
اونچیزی که مسلمه اینه که قبل از MouseUp باید آثار ترسیم قبل حذف بشه و تصویر مثل زمان قبل از ترسیم مربع باشه و مربع با مختصات جدید بر روی تصویر بدون مربع ترسیم بشه.
برای این کار می توانید از بیت مپ در پس پرده به عنوان میانگیر تصویر استفاده کنید(راه سخت تر استفاده از آرایه مشخصات ترسیمات سابقه)؛ به این صورت که قبل از اولین کلیک برای تعیین اولین نقطه لنگر چهار گوش کل تصویر را در بافر ترسیم کنید(البته می توانید از چند بافر استفاده کنید تا بتوانید عمل Undo را هم انجام دهید)
با این کار می توانید قبل از اینکه با توجه به موقعیت جدید ماوس ترسیم را مجددا ترسیم کنید ناحیه چهار گوشی که ترسیم با مختصات قبلی را دربرمیگرفت را از بافر بر روی تصویر ترسیم کنید و بعد از حذف آثار شکل با ابعاد قبلی ترسیم با مختصات فعلی را انجام دهید و در آخر Refresh انجام دهید.
روشی که در این برنامه که گذاشتید استفاده شده برای ترسیمات متداخل مناسب نیست و تنها روش مناسب عمل برطبق روش فوق الذکر است.
نظر شخصی بنده اینه که اگر شما بتوانید نسخه Portsble نرم افزار فتوشاپ و Flash رو گیر بیارین(که من هر دو رو دارم) برنامه نوشتن برای ترسیم برداری، کاری بیهوده است(مگر بخواهید چیزی مثل Network Assistant داشته باشین!!) نرم افزار فتوشاپ برای ترسیم چندان مناسب نیست و Paint ویندوز بهتر است ولی فلش برای ترسیمات برداری با لبه نرم و پر کردن نواحی داخلی خطوط نه کاملا بسته!! فوق العاده است.(حتی میشه گفت بهترین ابزار برای ساخت کارتون و بازی برای مبتدیهاست؟!)
ببخشید با حرفای پراکنده وقتتون رو پر کردم.امیدوارم حرفام به دردتون خورده باشه.
-------
یاد من باشد ، هرچه پروانه که می افتد در آب ، زود از آب درآرم

یاد من باشد کاری نکنم ، که به قانون زمین بربخورد

یاد من باشد فردا لب جوی ، حوله ام را با چوبه بشویم

یاد من باشد تنها هستم

ماه بالای سر تنهایی است
سهراب سپهری