الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة حلوة (pagecontrol) في وقت التنفيذ

بدأه المستفيد1 في 22 سبتمبر 2008 · 2 رد · 1,102 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

مشكلة اليوم:

حاولت أن أضيف عنصر في وقت التشغيل، وبفضل من الله وجدت الطريقة المناسبة.

لكن المشكلة عندما حاولت تجربتها مع عنصر PageControl، فالعنصر يتم إنشاءه بالفعل في وقت التشغيل، لكن عندما حاولت أن أنشيء TabSheet تتفرع من هذه PageControl كانت المشكلة أنه تختفي الـ PageControl من الفورم.

وحتى لا أضيع وقتكم بالتحميل سأكتب الكود الذي وضعته:

أولا: لإنشاء الـ PageControl

procedure TForm1.Button1Click(Sender: TObject);
 var
   PageControl: TPageControl;
 begin
   PageControl := TPageControl.Create(self);
   PageControl.Parent := self;
   PageControl.Visible := True;
   PageControl.Top := 8;
   PageControl.Left := 8;
   PageControl.Height:= 129;
   PageControl.Width:= 273;
end;

ثانيا: لإنشاء الـ TabSheet

procedure TForm1.Button2Click(Sender: TObject);
var
   TabSheet: tTabSheet;
begin
   TabSheet:= TTabSheet.Create(Self);
   TabSheet.Parent:= Self;
   TabSheet.Visible := True;
   TabSheet.Top := 8;
   TabSheet.Left := 8;
   TabSheet.Height:= 129;
   TabSheet.Width:= 273;
end;

فما هي الطريقة لإضافة الـ TabSheet بالصورة المناسبة

ووضعت النموذج في المرفقات للاطلاع عليه وجزاكم الله خيرا

PageControl.rar

#2

السلام عليكم

أخي الكريم أرجو أن يكون هذا ما تريد لاحظ الفرق بين الكودين

كما أرفقت المثال للتوضيح أكثر

var

Form1: TForm1;
PageControl: TPageControl;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
//var
//PageControl: TPageControl;
begin
PageControl := TPageControl.Create(self);
PageControl.Parent := self;
PageControl.Visible := True;
PageControl.Top := 8;
PageControl.Left := 8;
PageControl.Height:= 129;
PageControl.Width:= 273;
end;



procedure TForm1.Button2Click(Sender: TObject);
var
TabSheet: tTabSheet;
begin
TabSheet:= TTabSheet.Create(self);
TabSheet.Caption := 'AT2000';
TabSheet.PageControl := pagecontrol;
TabSheet.Top := 8;
TabSheet.Left := 8;
TabSheet.Height:= 129;
TabSheet.Width:= 273;
end;

PageControl.rar

تم تعديل هذه المشاركة بواسطة rober في 22 سبتمبر 2008 في 16:51

I'm Away For Sometimes

I'll Finish My Works

Come Back Soon

More Study > More Search > More Try > More Learning > Great Success

#3

وعليك السلام ورحمة الله وبركاته

فتح الله لك أبواب الخير أخي العزيز، لقد أحسنت، بارك الله فيك، واسمح لي بأن أضع شرحًا بسيطًا للكود لعل بعض أخواني ينتفع به إن شاء الله

بداية نقوم بتعريف العنصر الأساسي ضمن البرنامج ونضعه هنا:

var
  Form1: TForm1;
  PageControl: TPageControl;

ثانيًا: نضيف كود إنشاء العنصر حسب الحدث الذي نريده، أنا جعلته هنا مع الضغط على زر

  PageControl := TPageControl.Create(self);
   PageControl.Parent := self;

ثالثًا: نضع بقية الخصائص المطلوبة للعنصر من حيث الحجم والطول والارتفاع ... إلخ

   PageControl.Visible := True;
   PageControl.Top := 8;
   PageControl.Left := 8;
   PageControl.Height:= 129;
   PageControl.Width:= 273;

وهكذا انتهينا من الجزء الأول.

أما إنشاء العنصر TabSheet فنقوم بتعريفه بالطريق العادية

procedure TForm1.Button2Click(Sender: TObject);
var
   TabSheet: tTabSheet;

ثم بعد ذلك نقوم بإنشاء العنصر الابن

begin
   TabSheet:= TTabSheet.Create(self);

ثم نقوم بإسناد العنصر الابن إلى العنصر الأب بالطريقة التالية

TabSheet.PageControl := pagecontrol;

ثم نضع خصائص العنصر كما سبق

أشكرك أخي rober شكرا جزيلا، ولو وجدت أي خطأ في الشرح أرجو أن تصوبه وجزاك الله خير الجزاء

مواضيع مشابهة