28-07-2022, 09:38 PM
29-07-2022, 12:01 AM
وعليكم السلام
1 - قم بتحديد MainMenu وفعل الخاصية ownerDraw الى True
ثم ضع الكود التالي بعد تحديد الايتمز items في الحدث OnDrawItem
1 - قم بتحديد MainMenu وفعل الخاصية ownerDraw الى True
ثم ضع الكود التالي بعد تحديد الايتمز items في الحدث OnDrawItem
كود :
procedure TForm1.MenuItem11DrawItem(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; Selected: Boolean);
var
s: string;
begin
// change font
ACanvas.Font.Name := 'Consolas';
ACanvas.Font.Size := 14;
ACanvas.Font.Style := [fsBold];
ACanvas.Font.Color := clYellow;
// change background
ACanvas.Brush.Color := clBlack;
ACanvas.Rectangle(ARect);
// write caption/text
s := (Sender as TMenuItem).Caption;
ACanvas.TextOut(ARect.Left + 2, ARect.Top + 2 , s);
end;29-07-2022, 09:38 AM
بارك الله فيك أخي Mr.DOS
جربت الكود لكن لم يعطي النتيجة المرجوة
أريد حلا طبيعيا بمعنى أي لا أريد أن أمر بـ OnDrawItem ، لأنه يعطي صورة غير احترافية في البرنامج، بل يعطي صورة مصطنعة وهذا ما أريد تجنبه.
وشكرا لك كل الشكر أخي الحبيب
جربت الكود لكن لم يعطي النتيجة المرجوة
أريد حلا طبيعيا بمعنى أي لا أريد أن أمر بـ OnDrawItem ، لأنه يعطي صورة غير احترافية في البرنامج، بل يعطي صورة مصطنعة وهذا ما أريد تجنبه.
وشكرا لك كل الشكر أخي الحبيب
29-07-2022, 01:18 PM
29-07-2022, 04:50 PM
السلام عليكم ورحمة الله وبركاته
29-07-2022, 10:16 PM
ممتااااااااااز بارك الله فيك أخي
نجحت 100/100
شكرا جزيلا لك ولكل من ساهم في الإجابة
ملاحظة: نجح الكود 100/100 دون الحاجة إلى الخطوة 1 ودون الحاجة للخطوة 2
أي يكفي كتابة الكود فقط
وأعيد شكري وامتناني للإخوة الأكارم
نجحت 100/100
شكرا جزيلا لك ولكل من ساهم في الإجابة
ملاحظة: نجح الكود 100/100 دون الحاجة إلى الخطوة 1 ودون الحاجة للخطوة 2
أي يكفي كتابة الكود فقط
وأعيد شكري وامتناني للإخوة الأكارم