PDA

View Full Version : چیدمان عناصر بروی فرم



nightHunter
جمعه 17 فروردین 1386, 18:21 عصر
سلام .

در فرمی میخواهیم تعدادی EditBox قرار دهیم ، تعداد نامشخص است و هر بار ممکن است تغییر کند . فرضا" x تعداد عناصر EditBox است . نیاز داریم این تعداد عنصر را به شکلی خاص بروی فرم بچینیم . ( منظور از شکلی خاص ترتیبی است که کاربر پسند باشد ) ضمنا جهت تولید این تعداد نامشخص EditBox از آرایه استفاده شده است . لطفا راهنمایی کنید .

با تشکر .

MNosouhi
جمعه 17 فروردین 1386, 22:11 عصر
میتونی EditBox هایی رو که نیاز داری رو به صورت دینامیک ایجاد کنی ( قبلا در این مورد بحث شده ) و یا اگر حوصلش رو نداری میتونی مثلا 20ا EditBox روی فرمت بزاری و فقط اونهایی رو که احتیاج داری رو نشون بدی و بقیه رو Hide کنی. در مورد چیدمان عناصر هم باید positin مربوط به EditBox رو در فایلی (مثلا ini) ذخیره کنی تا در هر بار لود شدن برنامه بتونی تغییراتی را که کاربر ایجاد کرده شده رو نشون بدی ، ساختار این فایل ini رو میتونی مثل فایل های dfm شبیه سازی کنی.

Bahmany
شنبه 18 فروردین 1386, 07:49 صبح
var
Scrn:TScrollBox;
pnl:TPanel;
edt:Tedit;
lbl:TLabel;
i:integer;
begin
Scrn := TScrollBox(self);
Scrn.Parent:=Form1;
Scrn.Visible:=true;
for i:=1 to 30 do
begin
pnl := TPanel.Create(self);
pnl.Parent := Scrn;
pnl.Align:=alTop;
pnl.Width:=120;
pnl.Visible:=true;
edt := TEdit.Create(self);
edt.Parent := pnl;
edt.Visible := true;
lbl := TLabel.Create(self);
lbl.Parent := pnl;
lbl.Visible:=true;
lbl.caption:='TestLbl';
end;

به نظر بنده شما می توانید از این رویه برای ساخت و بهینه سازی Obj هاتون استفاده کنید

البته سورس بالا با کمی تغییر این obj های داخل عکس ضمیمه رو تولید می کنه

nightHunter
یک شنبه 26 فروردین 1386, 11:31 صبح
با سلام

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

باز هم تشکر میکنم .

SYNDROME
یک شنبه 26 فروردین 1386, 19:54 عصر
با سلام
از کامپونت ScrollBox استفاده کن و Edit ها را در آن بساز تا فرم شما هم نیاز به Scroll نداشته باشه و دست شما هم بازتر باشد.