PDA

View Full Version : چطور در زمان اجرا طول و عرض فرم رو ميشه تغيير داد؟



حمید محمودی
جمعه 28 خرداد 1389, 17:03 عصر
سلام دوستان.

مثلا با اجراي برنامه زير فرم مياد به سمت Right و bottom زياد ميشه و از همون سمت هم، به سمت چپ و بالا کم ميشه.



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
a:boolean;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin

If a = false Then begin
self.Width := 530 ;
self.Height := 298 ;
a:=not (a);
end
else if a=true then begin
self.Width := 700 ;
self.Height := 700 ;
a:=not (a);
end;

end;

procedure TForm1.FormCreate(Sender: TObject);
begin
a:=true;
end;

end.

اما چطور ميشه فرم رو به سمت Left و bottom سایزشو زياد کرد؟؟ و از همون سمت هم به سمت Right و Top کم کرد؟ يعني برعکس روش بالا؟؟

اينکار در NERO EXPRESS پياده سازي شده. مثلا در نرو7 يه قسمتي هست که ميشه سرعت رايت رو انتخاب کرد. اونجا يه دکمه اي هست که همونطوريه...

به پيوست زير نگاه کنين فکر کنم بهتر منظور منو متوجه بشين.توش همين برنامه بالا رو هم گذاشتم به علاوه يه ويدئو (در اين ويدئو فرم فقط به سمت Left زياد و کم ميشه. که مسلما با کد بالا نميشه اينکاروکرد!!)

مرسي

Mahmood_M
جمعه 28 خرداد 1389, 17:46 عصر
می تونید ابتدا عرض فرم رو به اندازه ی دلخواه زیاد کنید و بعد Left اون رو هم از مقدار زیاد شده کم کنید ، توی این روش نکته ی مهم تنظیم خاصیت Left کنترلهاست که باید به اضافه ی همون مقدار اضافه شده بشه ! ، برای حل این مشکل هم می تونید یک Panel روی فرم بزارید و کنترلها رو روی اون تنظیم کنید ، در هنگام افزایش عرض فرم هم خاصیت Left مربوط به Panel رو تغییر بدید ، یک نمونه براتون ضمیمه کردم ...

موفق باشید ...

حمید محمودی
جمعه 28 خرداد 1389, 18:05 عصر
آقای نوری ممنون. تقریبا حله و کار تمومه.

اما هم این برنامه ای که شما دادین و هم Nero رو تست کردم همین الان.نمیدنم چرا میزان پرش سمت Right همین برنامه ای که دادین خیلی بیشتره. اگه Nero هم از این روش استفاده کرده چرا موقع کلیک روی اون دکمه اش ، خیلی کمتر فرمش پرش داره( یعنی وقتی کلیک میکنم میزان تغییر اون سایز فرم --مقدار widthش -- خیلی کمتر مشخصه..)

تشکر

SAASTN
شنبه 29 خرداد 1389, 00:19 صبح
نمیدنم چرا میزان پرش سمت Right همین برنامه ای که دادین خیلی بیشتره
با اجازه Mahmood_N کمی تغییر تو کدتون دادم که Fliker کمتر شد. با Nero مقایسه کردم پرش در یک حده.