PDA

View Full Version : سوال: ساخت تب در tab page



joooje
شنبه 30 مهر 1390, 10:41 صبح
سلام به همه دوستان
من یه TabControl توی صفحه دارم.
من میخوام که بعد از اجرای برنامه با فشردن یه دکمه یه tab اضافه بشه و یه ادیتباکس هم توی خود TabControl ساخته شه هر چند بار که دکمه رو میزنم یه tab دیگه اضافه کنه و یه ادیتباکس هم بسازه
و با یه دکمه دیگه بتونم یک یکی tab های مورد نظرم رو مثلا tab سوم رو پاک کنم
ممنون میشم نحوه ساخت و پاک کردن tab بعد از اجرای برنامه رو به من بگید
راستی من حتما TabControl میخوام و میدونم که pagrcontrol بهتر هست ولی فعلا روش رو برای TabControl میخوام (یعنی فعلا نمیخوام با زدن تب ها به هر تب بره)
ممنون

SAASTN
شنبه 30 مهر 1390, 21:23 عصر
برای ایجاد تب جدید:
var
NewTabSheet: TTabSheet;
NewEdit: TEdit;
begin
NewTabSheet := TTabSheet.Create(Self);
NewTabSheet.PageControl := PageControl1;
NewTabSheet.Caption := 'New Tab';

NewEdit := TEdit.Create(NewTabSheet);
NewEdit.Parent := NewTabSheet;
end;

و برای حذف:
PageControl1.ActivePage.Free;
// or
PageControl1.Pages[3].Free;

حتما Owner کنترل هایی که روی TabSheet میسازید رو برابر خود TabSheet قرار بدین تا موقع Free کردن تب، کنترلهای روش هم آزاد بشن.
کلا ایجاد کنترل ها رو تب به اینصورت کار درستی نیست، الان فقط یه ادیته، بعد یه Label و بعد دوتا Botton و ... هم اضافه میشه که حسابی مکافات راه میندازه، بهتره هر چیزی رو که میخواید داخل تب ها باشه، اول رو یه Frame ایجاد کنید و بعد فقط اون Frame رو روی تب جدید ایجاد کنید.

joooje
شنبه 30 مهر 1390, 23:19 عصر
ممنون از راهنماییتون
ولی من که توضیح دادم که برای TabControl میخوام نه برای PageControl !!!!

SAASTN
شنبه 30 مهر 1390, 23:36 عصر
واقعا شرمنده! کل مطلب رو هم خوندما، ولی کلا دوتا عبارت با هم replace شدن.
// add new tab:
TabControl1.Tabs.Add('New Tab');
// delete tab:
TabControl1.Tabs.Delete(2);
// create an edit:
NewEdit := TEdit.Create(Self);
NewEdit.Parent := TabControl1;