PDA

View Full Version : درج خط در مختصات فعلی



فاطمه وطن دوست
دوشنبه 17 تیر 1387, 23:18 عصر
سلام

این تصاویر رو نگاه کنید .

میخوام با هر بار اسکرول که left پیکچر باکس تغییر میکنه موقعیت بالا - چپ به عنوان محلی

برای درج یه خط جدید باشه .پیکچر باکس خاصیت scale اش قبلا تنظیم شده .

این کدو نوشتم :




Set ComSavBmp = Controls.Add("Project1.UserControl1", "ComSavBmp" & i, pb)

With ComSavBmp

.Top = pb.ScaleTop + pb.Top
.Left = pb.ScaleLeft + pb.Left
.Width = pb.Width
.Height = pb.Height
.Enabled = True
.visible = True

End With






Width = pb.Width
Height = pb.Height-------> توکل فرم قابل حرکت باشه

یه سوال دیگه با هر بار اسکرول واسه وسیع تر شدنه صفحه ترسیمات باید به پهنا و ارتفاع فرم هم به اندازه ی

اسکرول شدن اه پیکچر باکس اضافه بشه ؟تا یه حد میشه اضافه کرد ، در غیر این صورت پیغامه over flow میده .

تو نرم افزارهایی مثله اتو کد واسه وسیع کردنه صفحه چی کار میکنند . این اسکرول همراه با جابه جا شدن و بزرگ

شدنه پیکچر تا یه حدی درسته ولی بعد از چند بار اسکرول پیکچر باکس ارور میده .

جدن این برنامه ها رو چطوری مینویسن. :قلب:

Mbt925
سه شنبه 18 تیر 1387, 00:20 صبح
من اصلا متوجه نشدم چی می خواین !!! اصلا خوب توضیح ندادین.

اسکرول کردن با این روش ، اصولی نیست،
توی نرم افزار های بزرگ برای اسکرول کردن، تصویر دوباره رسم میشه و Left و Top تغییری نمی کنه. رسم دوباره تصویر بصورتی که طبیعی بنظر برسه توسط توابع API صورت می گیره، کمی مشکله و شدنیه.

فاطمه وطن دوست
سه شنبه 18 تیر 1387, 00:45 صبح
سلام

میشه یه کم بیشتر توضیح بدین ، متوجه نشدم.

چون واقعا نمیدونم باید چی کار کنم

Mbt925
سه شنبه 18 تیر 1387, 01:15 صبح
من اصلا متوجه نشدم چی می خواین !!! اصلا خوب توضیح ندادین.



برای حرکت دادن تصویر می تونید از تابع API اه BitBlt استفاده کنید.

http://barnamenevis.org/forum/showthread.php?p=548810#post548810

فاطمه وطن دوست
سه شنبه 18 تیر 1387, 18:31 عصر
سلام

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



- Zoom
+ Zoom
وجود داره که بسته به میزان zoom ناحیه انتخابی از صفحه کاری رو بزرگ یا کوچیک میکنه. (ناحیه انتخابی - ناحیه ای که کاربر انتخابش میکنه )
با اسکرول های افقی و عمودی کل ناحیه کاری اسکرول میشه( ابعادش تغییر نمیکنه )




Zoom Extents :
هر شئ ای که تو ناحیه ی کاری باشه به ندازه ی که خودمان تعیین کنیم کوچیک یا بزرگ میشن.

در مورد Zoom Extents ، هم باید گفت ، نقطه 0,0 (مبداء مختصات) ثابت هست بلکه همه ترسیمات (خطوط) در اندازه ای که کاربر تعیین میکنه ، ضرب شده ( کوچیک یا بزرگ میشن. ) و دوباره ترسیمات انجام میشه .


در نهایت هم اینکه وقتی خطی در زمان اجرا ترسیم میشه و مشخص نیست کاربر قراره تا کدوم مختصات این خط رو کشیده و رها کنه - به اندازه ی مسافتی که طی شده باید فضای کاری رو اسکرول داد .

Mbt925
سه شنبه 18 تیر 1387, 19:16 عصر
خانم وطن دوست یکی از کاربران خیلی خوب و بافرهنگ این بخش هستند،
روحیه ی یه برنامه نویس باید مثل ایشون باشه، تا حالا به هر مشکلی برخوردن، با تلاش، جستجو، پرسش مداوم، مشکلشون رو حل کردن، حداقل راه حل مشکل رو پیدا کردن.

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

در ضمن به قوانین هم خیلی احترام میذارن.