11-02-2015, 04:47 PM
11-02-2015, 08:56 PM
نعم يمكنك ذلك وبكل بساطة فقط إتبع الخطوات التالية
أولا يجب عليك تغيير خاصة OwnerDraw إلى True فبدونها فإن الدلفى ستعتمد الاعدادات الافتراضية لـ PopupMenu
ثانيا تفعيل حدث OnDrawItem وذلك بالنقر المزدوج على مكون القائمة واختيار العنصر الأول ثم اختيار Events من صندوق الخصائص والضغط على OnDrawItem ثم قم بلصق الكود التالي حيث سيغير لون الأحرف إلى أحمر ولون التحديد إلى الأصفر
الآن قمنا بتغيير العنصر الأول فقط .. وماعليك فعله هو تحديد بقية العناصر وإختيار OnDrawItem للعنصر الأول كحدث لبقية العناصر
أولا يجب عليك تغيير خاصة OwnerDraw إلى True فبدونها فإن الدلفى ستعتمد الاعدادات الافتراضية لـ PopupMenu
ثانيا تفعيل حدث OnDrawItem وذلك بالنقر المزدوج على مكون القائمة واختيار العنصر الأول ثم اختيار Events من صندوق الخصائص والضغط على OnDrawItem ثم قم بلصق الكود التالي حيث سيغير لون الأحرف إلى أحمر ولون التحديد إلى الأصفر
كود :
ACanvas.Font.Assign(Font);
if Selected then begin
ACanvas.Font.Color := clRed;
ACanvas.Brush.Color := clYellow;
ACanvas.FillRect(ARect);
end else begin
ACanvas.Font.Color := clMenuText;
ACanvas.Brush.Color := clMenu;
ACanvas.FillRect(ARect);
end;
DrawText(ACanvas.Handle, pchar(TMenuItem(Sender).Caption), length(TMenuItem(Sender).Caption), ARect, DT_CENTER or DT_VCENTER);الآن قمنا بتغيير العنصر الأول فقط .. وماعليك فعله هو تحديد بقية العناصر وإختيار OnDrawItem للعنصر الأول كحدث لبقية العناصر
13-03-2015, 07:31 PM
جربتها لم يتغير شي
13-03-2015, 08:21 PM
شغالة مئة بالمئة ...... تأكد من خاصية OwnerDraw يجب أن تصبح True