PDA

View Full Version : پاک کردن رد ترسیم خط در برنامه گرافیکی مثل MS Paint



Developer Programmer
جمعه 28 آذر 1382, 21:46 عصر
آقا من دارم یه برنامه شبیه Paint می نویسم

از یک نقطه کلیک می کنیم تا یه نقطه ای می کشیم ... خطی ترسیم می شه
اما به محض اینکه ماوس را به مکان جدید بردیم خطهای قبلی پاک می شوند و خط جدید جای آنها را می گیره به محض آنکه دگمه ماوس را ول کردیم خط بر روی PaintBox تثبت می شه

( برنامه Paint را ببینید)

حالا من هر کاری می کنم ... رد خطهای قبلی پاک نمیشه
متد PaintBox1.Repaint هم مرتب صفحه پر پر می زنه در ضمن تمام اشکال از قبل ترسیم شده را هم پاک می کنه لذا خوب نیست

چی کار کنم ؟

SyntaxCheck
شنبه 29 آذر 1382, 01:39 صبح
فکر میکنم میتونید دوتا وریبل اینتیجر بگیرید و موقعیت انتها و ابتدای خط رو مدام پس از حرکت موس در اون بریزید. در زمانی که موس حرکت میکنه و میخواید خط رو در موقعیت جدید بکشید درست قبل از ترسیم خط با توجه به مختصات انتهای جدید, یک خط از مختصات ابتدا و به مختصات انتهای قبلی که در متغیرتون ذخیره کردید بکشید(با رنگ زمینه). اینجوری پرشی هم در تصویر نخواهید داشت.

Developer Programmer
شنبه 29 آذر 1382, 12:24 عصر
نمی شه از متد XOR استفاده کرد ؟

تو دلفی پیداش نمی کنم احتمالا باید توی Canvas باشه...

شنبه 29 آذر 1382, 12:28 عصر
اتفاقا تنها راه حلت همینه
اینجوری میتونی از xor استفاده کنی
:wink:
canvas.Pen.Mode:= pmxor;

Developer Programmer
شنبه 29 آذر 1382, 22:25 عصر
الهی فدات بشم تو که همیشه من رو کمک می کنی

شنبه 29 آذر 1382, 23:34 عصر
:oops: :oops: