PDA

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



mehranh13
دوشنبه 08 فروردین 1390, 19:36 عصر
سلام.در ابتدا سال نو رو به همه برنامه نویسان عزیز تبریک میگم.من یه برنامه نوشتم با ویژال بیسیک.رزولیشن سیستم من 1280*800 است.اما نمیدونم چرا برنامه من در رزولیشن های دیگه ناقص اجرا میشه و بعضی دکمه ها و ..... نشون داده نمیشه.حتی با تغییر رزولیشن.برنامه باید به صورت زیر باشه
BorderStyle=0-None
Windowstat=maximized
ممنون میشم کمکم کنید

soheilbehro
دوشنبه 08 فروردین 1390, 21:28 عصر
می تونی قبل از اینکه برنامه ات در سیستم دیگه ای اجرا بشه ، رزولیشن اون سیستم رو به رزولیشنی که می خوایی تغییر بدی و در انتهای کار وقتی کاربر می خواد از برنامه خارج بشه دوباره به همون رزولیشن کاربر برگردونی!!!! به همین راحتی:لبخند:
اگه کمک بیشتر خواستی پیغام بده

حمید محمودی
دوشنبه 08 فروردین 1390, 21:34 عصر
سلام،

سوال شما خیلی کلی هست. اگه میتونید برنامه رو قرار بدید تا تست کنیم. یا فقط UI اون قسمتی که مشکل داره رو بدون کد های مربوطه آپلود کنید. چون اینطوری نمیشه کمک خاصی کرد. تنها چیزی که الان میشه گفت اینه که باید اجزای فرم خودتون رو متناسب با روزلویشن های مختلف طراحی کنید، به نحوی که با تغییر اون مشکلی پیش نیاد. در نسل بعدی و به روز شده ویبی6 (ویبی دات نت) یک قسمت به نام Anchor هست که میتونید برای این منظور ازش استفاده کنید. اما متاسفانه ویبی6 همچین چیزی نداره. البته میتونید با استفاده از کد نویسی شبیه این قابلیت رو استفاده کنید (مثلا اون قدیما یادمه یه ماژول رو به برنامه Add میکردیم و خودکار اجزای صفحه بصورتی که باید جابه جا میشد.) .

ضمنا روشی که در پست قبلی به آن اشاره شد، روش درست و منطقی ای نیست.چون این روش کار ما را راحت میکنه، اما کاربر از اینکار خوشش نمیاد.

mehranh13
سه شنبه 09 فروردین 1390, 08:27 صبح
می تونی قبل از اینکه برنامه ات در سیستم دیگه ای اجرا بشه ، رزولیشن اون سیستم رو به رزولیشنی که می خوایی تغییر بدی و در انتهای کار وقتی کاربر می خواد از برنامه خارج بشه دوباره به همون رزولیشن کاربر برگردونی!!!! به همین راحتی:لبخند:
اگه کمک بیشتر خواستی پیغام بده
ممنون.اما با تغییر رزولیشن کاربر هم این مشکل حل نمیشه.باز هم بعضی چیزها دیده نمیشه

mehranh13
سه شنبه 09 فروردین 1390, 08:34 صبح
سلام،

سوال شما خیلی کلی هست. اگه میتونید برنامه رو قرار بدید تا تست کنیم. یا فقط UI اون قسمتی که مشکل داره رو بدون کد های مربوطه آپلود کنید. چون اینطوری نمیشه کمک خاصی کرد. تنها چیزی که الان میشه گفت اینه که باید اجزای فرم خودتون رو متناسب با روزلویشن های مختلف طراحی کنید، به نحوی که با تغییر اون مشکلی پیش نیاد. در نسل بعدی و به روز شده ویبی6 (ویبی دات نت) یک قسمت به نام Anchor هست که میتونید برای این منظور ازش استفاده کنید. اما متاسفانه ویبی6 همچین چیزی نداره. البته میتونید با استفاده از کد نویسی شبیه این قابلیت رو استفاده کنید (مثلا اون قدیما یادمه یه ماژول رو به برنامه Add میکردیم و خودکار اجزای صفحه بصورتی که باید جابه جا میشد.) .

ضمنا روشی که در پست قبلی به آن اشاره شد، روش درست و منطقی ای نیست.چون این روش کار ما را راحت میکنه، اما کاربر از اینکار خوشش نمیاد.
سلام.ممنون دوست عزیز پروژه من اینجوریه چندین فرم داره به همین صورت .ممنون میشم کمک کنید

حمید محمودی
سه شنبه 09 فروردین 1390, 13:33 عصر
این نمونه رو اصلاح کردم، شما کل کدهای همین پروژه ای که بصورت نمونه قرار دادید رو پاک کنید و به جای اون کد های زیر رو جایگزین کنید. مشکل حل میشه.
در رزولویشن های 800*600 و 1024*768 و 1600*900 تست کردم هیچ مشکلی نداره.

موفق باشید.


Option Explicit

Private Sub Command5_Click()
End
End Sub

Private Sub Form_Resize()
On Error Resume Next

Shape1.Width = Me.Width - 3000
Shape1.Height = Me.Height - 500

Command1.Left = (Me.Width - Command1.Width) - 200
Command2.Left = (Me.Width - Command2.Width) - 200
Command3.Left = (Me.Width - Command3.Width) - 200
Command4.Left = (Me.Width - Command4.Width) - 200
Command5.Left = (Me.Width - Command5.Width) - 200

End Sub

javadt
سه شنبه 09 فروردین 1390, 13:34 عصر
دوست عزیز احتمالا Lcd َما wide هست
شما فرم رو زیادی بزرگ طراحی کردید برای همین همه چیز توی همه مانیوتر ها دیده نمیشه
یکم فرمتون رو کوچک تر کنید
رزولوشن استاندارد 1024*768 هست

mehranh13
سه شنبه 09 فروردین 1390, 18:20 عصر
دوست عزیز احتمالا Lcd َما wide هست
شما فرم رو زیادی بزرگ طراحی کردید برای همین همه چیز توی همه مانیوتر ها دیده نمیشه
یکم فرمتون رو کوچک تر کنید
رزولوشن استاندارد 1024*768 هست

ممنون.آخه باید فرم با اندازه ماکزیموم بالا بیاد اره مال من لب تابه و فرق میکنه.با اون کد های دوست عزیز حل شد.البته وقتی گرافیکم رو حذف کردم باز هم دیده نمیشه.بعدا تست میکنم روی چند تا سیستم اگه مشکل داشت دوباره همینجا مطرح میکنم.چون این برنامه برای یه مدرسه هست.و الان هم تعطیله مدارس.ممنون.

mostafag
چهارشنبه 10 فروردین 1390, 01:30 صبح
سلام دوست عزیز
فقط کافیه این کامپوننت رو به فرمتون اضافه کنید
و این کد رو به فرمتون اضافه کنید


Private Sub Form_Resize()
autosize1.adjust Me
End Sub

اینطوری نیاز به حتی یک خط کد نیست !!
هر چقدر هم که شی روی فرمتون باشه این ابزار به راحتی اون رو جابه جا میکنه!!! :متعجب:

mostafag
چهارشنبه 10 فروردین 1390, 01:33 صبح
فقط یک اشکال داره که من خودم هم نمیدونم چطوری رفع میشه اونم اینه که وقتی فرمت رو ماکزیمم لود کنی object ها تغییر نمی کنند
و مجبور میشی تا فرم رو به صورت normal بالا بیاری و بعد کاربر اگر خواست اون رو تغییر بده!!
اگر کسی تونست این مشکل رو حل کنه ما رو هم بی نسیب نزاره!

akbarg64
پنج شنبه 11 فروردین 1390, 09:15 صبح
سلام دوست عزیز
فقط کافیه این کامپوننت رو به فرمتون اضافه کنید
و این کد رو به فرمتون اضافه کنید


Private Sub Form_Resize()
autosize1.adjust Me
End Sub

اینطوری نیاز به حتی یک خط کد نیست !!
هر چقدر هم که شی روی فرمتون باشه این ابزار به راحتی اون رو جابه جا میکنه!!! :متعجب:

سلام.منم امتحان کردم.اصلا کار نمیکنه.منم توی این موضوع مشکل دارم.البته فک کنم این startup position هم بی تاثیر نباشه.اونو کدوم انتخاب کنیم بهتره؟؟؟؟؟؟ممنون.

akbarg64
پنج شنبه 11 فروردین 1390, 12:45 عصر
فقط یک اشکال داره که من خودم هم نمیدونم چطوری رفع میشه اونم اینه که وقتی فرمت رو ماکزیمم لود کنی object ها تغییر نمی کنند
و مجبور میشی تا فرم رو به صورت normal بالا بیاری و بعد کاربر اگر خواست اون رو تغییر بده!!
اگر کسی تونست این مشکل رو حل کنه ما رو هم بی نسیب نزاره!
سلام.فک کنم اینجوری مشکلت حل بشه
این کد ها رو توی Form load بنویس
Private Sub Form_Load()
Me.WindowState = vbMaximized
Me.WindowState = 2

End Sub
بعد اون کد هم که خودت نوشتی
Private Sub Form_Resize()
autosize1.adjust Me
End Sub

akbarg64
پنج شنبه 11 فروردین 1390, 13:08 عصر
سلام.در ابتدا سال نو رو به همه برنامه نویسان عزیز تبریک میگم.من یه برنامه نوشتم با ویژال بیسیک.رزولیشن سیستم من 1280*800 است.اما نمیدونم چرا برنامه من در رزولیشن های دیگه ناقص اجرا میشه و بعضی دکمه ها و ..... نشون داده نمیشه.حتی با تغییر رزولیشن.برنامه باید به صورت زیر باشه
BorderStyle=0-None
Windowstat=maximized
ممنون میشم کمکم کنید
سلام.این کد رو توی Form load بنویس بعد اون Autosize رو هم استفاده کن
Me.Height = Screen.Height
Me.Width = Screen.Width
این کد های بالا برای اینه که با رزولیشن کاربر بالا بیاد برای اینکه کنترل ها هم تطبیق داده بشه با کنترل بالا که دوستمون پیشنهاد کرد ازون استفاده کن.
این کد ها هم برای اینکه نیاز نباشه کاربر فرم رو ماکزیموم کنه که اتو سایزر فعال بشه در ادامه فرم لود بنویس
Me.WindowState = vbMaximized
Me.WindowState = 2