PDA

View Full Version : سوال: ببخشید می شه روی فرم یه شکلی رو cut کنیم



kamran_14
چهارشنبه 03 فروردین 1390, 12:10 عصر
سلام
ببخشید می شه روی فرم یه شکلی رو cut کنیم و به یک مکان دیگه از فرم Paste کنیم

pezhvakco
چهارشنبه 03 فروردین 1390, 19:03 عصر
Cut , Copy , Paste برای همه ابزار یک فرم کار میکنه .
منظور شما از یک شکل چیه ؟
شما برای جابجایی در یک فرم میتونی اون رو با موس و یا کنترل های چپ و راست هم جابجا کنی .

kamran_14
چهارشنبه 03 فروردین 1390, 20:01 عصر
Cut , Copy , Paste برای همه ابزار یک فرم کار میکنه .
منظور شما از یک شکل چیه ؟
منظور من اینه
یک شکل مستطیلی که روی فرم کشیدیم هنگام اجرای برنامه cut و Paste کنیم
نه موقع طراحی

منظور از شکل مستطیلی روی فرم

form1.Canvas.rectangle(0,0,100,50)

tdkhakpur
چهارشنبه 03 فروردین 1390, 20:16 عصر
ببخشید می شه روی فرم یه شکلی رو cut کنیم و به یک مکان دیگه از فرم Paste کنیم
منظور از شکل مستطیلی روی فرم

ابزار استاندارد برای این کار وجود نداره مگر اینکه شما خودتان با برنامه نویسی و با استفاده از بافرسازی داده های زمینه و برگشت آن از بافر به جای دلخواه این کار رو انجام بدید.برای اینکه چگونگی این کار رو از نزدیک حس کنید به paint خود ویندوز نگاه کنید cnrl+c و ctrl+v نمونه ای از این نوع خواسته شماست.

SAASTN
چهارشنبه 03 فروردین 1390, 21:41 عصر
من باز هم درست متوجه نشدم. شاید بهتر باشه که در مورد کاری که می خواهید انجام بدید توضیح بدین.
اما به هر حال اگر تنها قصد جابجا کردن بخشی از تصویر رو دارید می تونید از Canvas.CopyRect استفاده کنید:
Image1.Canvas.CopyRect(Rect(130, 130, 230, 230), Image1.Canvas,
Rect(0, 0, 100, 100));

البته اگر می خواهید جای بخشی که تصویرش جابجا شده با رنگ پس زمینه پر بشه ابتدا باید تصویر رو به یه Canvas موقت انتقال بدید و بعد محل رو با Rectangle به رنگ پس زمینه تغییر رنگ بدید و دوباره با CopyRect تصویر رو از Canvas موقت به محل اصلی انتقال بدید.
اگر هم قصد متحرک سازی یا چیزی شبیه به این رو دارید Canvas.Draw گزینه بهتریه.
اما اگر واقعا می خواید که عمل Copy/Cut/Paste رو شبیه سازی کنید و دقیقا از Clipboard استفاده کنید به نحوی که محتوی اون در دیگر نرم افزار ها هم قابل استفاده باشه:
اول بخشی از تصویر رو که عمل Cut یا Copy روی اون صورت می گیره رو به یه Bitmap موقت انتقال بدید و بعد:
Clipboard.Assign(TempBitmap);
و در هنگام عمل Paste:
if Clipboard.HasFormat(CF_BITMAP) then
TempBitmap.Assign(Clipboard) ;

و سپس جابجا کردن تصویر موجود در TempBitmap به محل مورد نظر در تصویر اصلی با CopyRect.

mbshareat
دوشنبه 08 فروردین 1390, 00:43 صبح
با سلام
اگه کار حرفه ای نمی کنین از Shape و رویدادهای ماوس اون کمک بگیرین و الا می تونین هنگام ترسیم اشکال اطلاعات اشیاء رو تو آرایه از نوعی که خوتون تعریف می کنین و حاوی مکان نقاط لنگر و رنگ خط محیطی و خط داخلی باشه بریزین و همزمان با ترسیم اشکال در کانواس شیء قابل مشاهده همون شکل رو تو یه بافر بیت مپ با رنگ اختصاصی ترسیم کنین بعد هنگام فشار ماوس برای کپی و برش و یا جابجایی رنگ نقطه متناظر در بافر رو بررسی کنین و تمام اشکال رو دوباره با اطلاعات درون آرایه ترسیم کنین.
البته اگه منظورتون طراحی برنام گرافیکی نیست که خود دانید.(فقط خواستم اظهار فضل کرده باشم!!!)