مشكل مع PageControl
#1
السلام عليكم ورحمة الله بركاته
استعلمت PageControl وفي احد TabSheet وضعت DBrid و Panel قي التنفيذ عندما انتقل من TabSheet الى TabSheet ثم ارجع TabSheet التي وضعت فيها DBrid و Panel لم يظهرا
علما اني استخدمت الكود التالي في FormCreatet

PHP كود :
procedure TForm1.FormCreate(Sender: TObject);
var 
Oldlong:integer;
begin
OldLong 
:= GetWindowLong(PageControl1.Handle,GWL_EXSTYLE);
SetWindowLong(PageControl1.Handle, GWL_EXSTYLE,OldLong or WS_EX_LAYOUTRTL);
InvalidateRect(PageControl1.Handle,nil,True);
end; 
الرد
#2
وعليكم السلام ورحمة الله,

المشكلة تم طرحها في المنتدى من قبل, وهناك موضوع في المنتدى اظنه بنفس العنوآن,
لم يتم حل المشكلمة مع الدلفي 7, لكن مع الدلفي 2009 فما فوق فلا مشكلة والله الحمد,

بالتوفيق اخي,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#3
شكرا جزيلا وبارك الله فيك
الرد
#4
السلام عليكم

في الحدث Change ل PageContol قمت بإخفاء ثم إظهار مكون في الصفحة التي تختفي مكوناتها، ومشى الحال.


كود :
procedure TForm1.PageControl1Change(Sender: TObject); begin label1.Visible := false; label1.Visible := true; end;
الرد
#5
همم, لم اجرب ذلك استاذ الشقروني,
لكن بما انك جربت هذا, فهل توضح ما هو الخلل بارك الله لك,

اهو bug في Delphi7 ؟ ام ورآء الأمر سر آخر؟

بارك الله لكم,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد
#6
السلام عليكم

صراحة أغلب برمجتي تمشي بالبركة !!

ولكن معروف أنه ليس كل المكونات في الويندوز تشتفل معها خاصية المرآة. Ws_ex_layoutrtl (على مستوى المكون الواحد)

أعتقد أنها مشكلة ويندوز والله أعلم.
الرد
#7
بما ان هدا ينجح العملية
PHP كود :
procedure TForm1.PageControl1Change(Sender: TObject);
begin
  label1
.Visible := false;
  
label1.Visible := true;
end; 

اعتقد ان الخلل فى ال VCL فقط ... قصور فى برمجة هدا المكون فقط .
الرد
#8
مرحبا


WS_EX_LAYOUTRTL تقوم فقط برسم سطح المكون بطريقة معكوسة Mirroring.

إذا وضعنا مكون TImage وبه صورة داخل مكون TPanel وطبقنا WS_EX_LAYOUTRTL على Tapanel فسنلاحظ أن الصورة تظهر معكوسة، كذلك فإن احداثيات X في حركة الفأرة تكون معكوسة.

لذلك فـ RightToLeft هنا ليست حقيقية ولكنها تصوير فقط..

ال VCL عليها أن تجد حل التفافي حول المشكلة كما فعلنا. فإن لم تقم بذلك فهي مشكلة في الويندوز وليس في VCL

ربما أكون مخطأ ولكن هذا ظني.
الرد
#9
احسنت وبارك الله فيك لقد حربت onchange
الرد
#10
بارك الله لكم,

إقتباس :اعتقد ان الخلل فى ال vcl فقط ... قصور فى برمجة هدا المكون فقط .
إقتباس :فإن لم تقم بذلك فهي مشكلة في الويندوز وليس في vcl

ربما أكون مخطأ ولكن هذا ظني.

لو نظرنا الى النتيجة مرة اخرى, مع الدلفي 7 لا تعمل, مع الدلفي 2010 فهي تعمل,
اذا الإحتمال ان الخلل من الويندوز صغير, (مجرد تفكير منطقي؟)

على كل حال, انا من مستخدمي الدلفي 2010 و اشجّع غيري على الهجرة اليه :clap3:

بالتوفيق,
فرّج همّ المهمومين يا الله
اللهم فك قيد اسرانا و اسرى المسلمين
الرد


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


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