PDA

View Full Version : رزولیشن



رهنورد2
شنبه 27 آبان 1385, 12:16 عصر
فرض کنید یک فرم داریم روی ان یک image که خاصیت alginان را clientمی گذاریم واندازه ان را 800در600که برابر اندازه اصلی تصویر است می کنیم

بعد براساس تصویر مان روی ان ابزار برنامه مثل دکمه و lable می گذاریم .
1- چه کار کنیم که اگر screen resulation ویندوز راتغییر دادیم مثلا1024در 768 کردیم باز جای ابزار چینده شده روی تصویر به هم نخورد؟

2- از کجا بفهمیم که screen resulation ویندوز تغییر کرده تا براساس ان یک کدی بنویسیم؟(تصویر اصلی 800در600است ودرغیر اینصورت خود عکس ان کیفیت را ندارد)

dkhatibi
شنبه 27 آبان 1385, 13:06 عصر
من تو سایت جستجو کردم دیدم با دستور OnChangeDisplay می شه در حین اجرای برنامه فهمید که آیا رزولیشن تغییر کرد یا نه!
همچنین با Screen.Width , Screen.height می تونیم رزولیشن را به دست بیاریم!

در مورد سوال اول هم برنامه نویسی یعنی این!

MNosouhi
شنبه 27 آبان 1385, 13:34 عصر
در تکمیل مطالب دوستان ، برای اینکه چیدمان عناصر روی فرم تغییر نکنه ، از خاصیت Anchors عناصر استفاده کن .

m-khorsandi
شنبه 27 آبان 1385, 13:53 عصر
Multi-Resolution Delphi Applications (http://delphi.about.com/od/standards/a/aa030700a.htm)

رهنورد2
شنبه 27 آبان 1385, 18:11 عصر
فعلا اینطوری جواب داد.
برای اینکه جای ابزار پس از تغییر رزولیشن تغییر نکندعکس مربوطه به همراه ابزار را دریک scroolboxگذاشتم .
بهد در رویداد on paintفرم برای اینکه با تغییر رزولیشن مکان scrollbox را تابت نگه دارم وهمچنین عکسم از مقدارم 800در600خارج نشود
این کد را نوشتم.
ScrollBox1.Left:=(Form1.ClientWidth-ScrollBox1.ClientWidth) div 2;
ScrollBox1.Top:=(Form1.ClientHeight-ScrollBox1.ClientHeight) div 2;
البته نباید scrollboxخاصیت alginان client باشه.