PDA

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



mahdy.asia
جمعه 16 تیر 1391, 06:58 صبح
می یک برنامه طراحی کرده ام که فرم اصلی آن خصوصیت formstyle آن با مقدار fsMDIForm پر شده است و فرم های دیگر با مقدار fsMDIChild می خواهم با تغییر رزولویشن کامپوننت ها هم بزرگ شوند مثل خود دلفی که با تغییر رزولویشن به هم نمی ریزه و همه اجزاء آن یکنواخت بزرگ می گردد

mahdy.asia
جمعه 16 تیر 1391, 07:10 صبح
نا گفته نمانه که از کد زیر هم که در سایت های مرجع پیدا کردم استفاده کردم اما فرم های نمایش داده شده از فرم main بزرگتر می شد و اسکرول می خورد و نتونستم مشکل اونو حل کنم مطابق تصویر پیوست شده

procedure ScaleForm
(F: TForm; ScreenWidth, ScreenHeight: LongInt) ;
begin
F.Scaled := True;
F.AutoScroll := False;
F.Position := poScreenCenter;
F.Font.Name := 'Arial';
if (Screen.Width <> ScreenWidth) then begin
F.Height :=
LongInt(F.Height) * LongInt(Screen.Height)
div ScreenHeight;
F.Width :=
LongInt(F.Width) * LongInt(Screen.Width)
div ScreenWidth;
F.ScaleBy(Screen.Width,ScreenWidth) ;
end;
end;
~~~~~

SayeyeZohor
جمعه 16 تیر 1391, 10:31 صبح
var
Form1: TForm1;
DeskSize: TRect;

implementation

{$R *.dfm}

PROCEDURE TForm1.SetBoundForm;
begin
Top := 0;
Left := 0;
SystemParametersInfo(SPI_GETWORKAREA, 0, @DeskSize, 0);
SetBounds(DeskSize.Left, DeskSize.Top, DeskSize.Right - DeskSize.Left, DeskSize.Bottom - DeskSize.Top);
end;

procedure ScaleForm(F: TForm; ScreenWidth, ScreenHeight: LongInt) ;
begin
F.Scaled := True;
F.AutoScroll := False;
F.Position := poScreenCenter;
F.Font.Name := 'Arial';
if (Screen.Width <> ScreenWidth) then
begin
F.Height := LongInt(F.Height) * LongInt(Screen.Height) div ScreenHeight;
F.Width := LongInt(F.Width) * LongInt(Screen.Width) div ScreenWidth;
F.ScaleBy(Screen.Width, ScreenWidth) ;
end;
Form1.SetBoundForm;
end;


اين كد رو نگاه كنين
الان سمپلشم ميذارم تستش كنين و اگه درست نيست تكميلش كنين

SayeyeZohor
جمعه 16 تیر 1391, 10:40 صبح
http://barnamenevis.org/attachment.php?attachmentid=89276

SayeyeZohor
جمعه 16 تیر 1391, 10:43 صبح
دانلود سورس كد (http://s1.picofile.com/file/7428654187/%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1_%D9%81%D8%B1%D9%85_ %D9%88_%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86% D8%AA_%D9%87%D8%A7%DB%8C_%D8%A8%D8%B1%D9%86%D8%A7% D9%85%D9%87_%D8%A8%D8%A7_%D8%AA%D8%BA%DB%8C%DB%8C% D8%B1_%D8%B1%D8%B2%D9%88%D9%84%D9%88%D8%B4%DB%8C%D 9%86.rar.html)

mahdy.asia
شنبه 17 تیر 1391, 22:46 عصر
کد شما نسبت به کدی که من استفاده کرده ام SetBoundForm را اضافه دارد مشکل را حاد تر کرد در عین حال من بشرطی می تونم در تکمیل پروژه کمکتون کنم که بگید کد SetBoundForm چه عملیاتی انجام می دهد