كيف أستدعي بانل و تختفي البانل الأخرى ؟؟
#1
السلام عليكم

كيف إستدعاء بانل عند الضغط على button وتختفي البانل الأخرى و عند الضغط على button home تعود إلى الصفحة الأولى من البرنامج
أستعمل دالفي سكين
الرد
#2
لم افهم ماذا تريد بالضبط اذا كانت لديك العديد من Panels الواحدة فوق الاخرى يفضل استخدام مكون PageControl من Win32 وضح اكثر ماذا تريد بالضبط
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#3
عندما أضغط على button ( client ) تفتح البانل الخاصة بالزبون و عند الضغط على button أخر مثلا تختفي البانل الخاصة بالزبون و تظهر بانل الخاصة بال: button الثاني
هذه صورة من واجهة برنامجي كذلك

.jpg   h7rj1.jpg (الحجم : 16.76 ك ب / التحميلات : 60)
الرد
#4
السلام عليكم اخي ومرحبا
فيما يخص اظها واخفاء panel
نفترض انك تستعمل 5 من Panel
و5 Button
عندما نريد إظهار Panel1
نكتب في الحدث للButton المتعلق باظهلر Panel1
كود :
Panel1.enabled:=true; Panel2.enabled:=false; Panel3.enabled:=false; Panel4.enabled:=false; Panel5.enabled:=false;
ملاحظة
يجب ان تضع في الحدث OnActivate المتعلق بالـ Form المتواجد بها Panels
كود :
Panel1.enabled:=False; Panel2.enabled:=false; Panel3.enabled:=false; Panel4.enabled:=false; Panel5.enabled:=false;
نسأل الله ان اكون قد وفقت في فهم السؤال والإجابة عنه
الرد
#5
hamou1982 طريقة متعبة ...
بداية لما لا نستخدم ماج يوفره لنا دلفي اي Sender و خاصية ControlCount

ضع Panel1 على الفورم
ضع داخل Panel1 بانل اخر Panel2
ضع داخل Panel1 بانل اخر Panel3
ضع داخل Panel1 بانل اخر Panel4
.
.
ضع داخل Panel1 بانل اخر Panel7

في كل بانل من البانلات السابقة اضف زر SpeedButton باختصار انشئ الشكل الذي في الصورة

الآن في حدث الضغط على زر SpeedButton1 مثلا
PHP كود :
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  
i: Integer;
begin
  
for i := 0 to Panel1.ControlCount - 1 do
  
begin
    
if (Panel1.Controls[i] is TPanel) then
        TPanel
(Panel1.Controls[i]).Height := 22;
  
end;
  
TSpeedButton(Sender).Parent.Height := 200;
end; 

الان اذهب الى جميع الازرار الاخرى واحدا واحدا يمكنك تحديدهم جميعا عن طريق الضفط على Shift

مثلا اذهب الى الزر SpeedButton2 ثم Events في حدث OnClick قم باستعراض اللائحة و اختر
SpeedButton1 انتهينا

الان لا يهم عدد البانل التي لديك
و لرب نازلة يضيق لها الفتى ذرعا و عند الله منها المخرج
ضاقت فلما استحكمت حلقاتها فرجت و كنت اضنها لا تفرج
الرد
#6
السلام عليكم ورحمة الله تعالى وبركاته

الكود التالي gلتنقل بين البانل و الأخر
كود :
procedure TForm2.FormActivate(Sender: TObject); begin Panel1.Visible:=False; Panel2.Visible:=false; Panel3.Visible:=false; Panel4.Visible:=false; Panel5.Visible:=false; end;
و بالنسبة للأزرار
مع كل زر :
كود :
procedure TForm2.spSkinSpeedButton2Click(Sender: TObject); begin Panel1.Visible:=true; Panel2.Visible:=false; Panel3.Visible:=false; Panel4.Visible:=false; Panel5.Visible:=false;
هل هو صالح ؟ هل هناك شيء أخر لم أضيفه ؟

و ما هو كود الرجوع إلى الصفحة الرئيسية وهي form2 ؟
الرد
#7
الرجوع للصفحة السابقة

PHP كود :
Form3.Close 
Form2
.Show 

او

PHP كود :
Form3.hide
Form2
.Show 

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد
#8
لكن أنا لدي button Home أود عند الضغط عليه أعود مباشرة إلى الصفحة الرئيسية هي : Form2
شكرا
الرد
#9
إقتباس :لكن أنا لدي button Home أود عند الضغط عليه أعود مباشرة إلى الصفحة الرئيسية هي : Form2
شكرا

في الحدث للButton اكتب التالي
كود :
Form2.Show;


أخي الكريم ... حاول الاطلاع على المكونات التالية فهي أسهل ولا تحتاج لأكثر من فورم واحد

TCategoryGroupPanel
وهذا مثال http://www.delphi4arab.net/forum/attachm...1354977306

أيضا يوجد شيء آخر لو اهتممت به TPageControl

وانظر أيضا إلى TTabControl


أسأل الله سبحانه وتعالى أن يغفر لي ولك وكل من يقرأ هذا الكلام ... بالتوفيق
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم