PDA

View Full Version : تغییر اندازه اجزای فرم با تغییر رزولوشن



babak_delphi
یک شنبه 27 مرداد 1387, 19:59 عصر
سلام
چطور میشه با تغییر رزولیشن فرم ، اندازه فرم و اجزای داخل اون و فاصله بین اجزا به نسبت تغییر رزولیشن تغییر کنند؟
مثلا اگر ما برنامه رو در رزولیشن 1024*768 نوشته باشیم در زمان اجرا اگر سیستم کاربر 800*600 باشه فرم ما و اندازهء کنترل هاش و فاصلهء بین اونها متناسب بمونند
مثلا در همون شرایطی که توضیح دادم فرم ما بزرگ دیده میشه و ممکنه ابعادش از صفحه بزرگتر بشه
در حالی که میخواهیم اگر عرض فرم در حالت 1024*768 به اندازهء نصف عرض دسک تاپ بود با تغییر رزولیشن به 800*600 باز هم عرض فرم به همان اندازه باقی بمونه
من حدس میزنم که با خاصیت اسکیل بشه کاری کرد ولی چطورش رو نمیدونم
از دوستان اگر کسی بلده لطفا توضیح بده
ممنون.

merced
یک شنبه 27 مرداد 1387, 20:46 عصر
with Application do
for vi_Counter1 := 0 to ComponentCount - 1 do
begin
//Find all the Auto-create forms
if Components[vi_Counter1] is TForm then
with (Components[vi_Counter1] as TForm) do
begin
Scaled := True;
if screen.Width <> ScreenWidth then
begin
Height := longint(Height) * longint(screen.Height) div
ScreenHeight;
Width := longint(Width) * longint(screen.Width) div
ScreenWidth;
ScaleBy(screen.Width, ScreenWidth);

//Now Scale the Form´s component´s Font
for vi_Counter2 := 0 to ControlCount - 1 do
with Components[vi_Counter2] do
//Use RTTI information to find for a Font property
if GetPropInfo(ClassInfo, 'font') <> nil then
Font.Size := (NewFormWidth div ScreenWidth)
* font.Size;
end;
end;
end;