m_m_saad
21-07-2010, 02:59 PM
السلام عليكم ورحمه الله وبركاته
وجدت امرا في دلفي help
combobox1.Brush.Bitmap.Assign()
لكن لم اعرف كيف استخدمه وواضح انه يمكن تخصيص من خلال هذا الامر صورة خلفيه للكومبوبوكس
كيف اخصص صورة - من خلال مسار path علي الهارددسك
او حتي تخصص وتحفظ داخل البرنامج و استدعيها
عن طريق الكود
kachwahed
21-07-2010, 04:04 PM
وعليكم السلام ورحمة الله وبركاته
جيد أنك وضحت السؤال :)
شيء مثل هذا:
ComboBox1.Brush.Bitmap := Image1.Picture.Bitmap;
لكن...
الرسم في مثل هذه المكونات يتم باستخدام حدث مخصص لذلك
في المكون TComboBox هنا حدث يدعى OnDrawItem يستخدم لتخصيص شكل معين للـ Combo
بعد ضبط خاصية Style على csOwnerDrawVariable لتعلن أنك أنت من سيقوم بالرسم في المكون
اكتب في الحدث OnDrawItem للـ TComboBox:
procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
Bitmap: TBitmap;
Offset: Integer;
begin
offset := 0;
with ComboBox1.Canvas do
begin
FillRect(Rect);
Bitmap := TBitmap(Image1.Picture.Bitmap);
if Bitmap <> nil then
begin
//copy bitmap to combobox coordinate
BrushCopy(Bounds(Rect.Left + 2, Rect.Top + 2, Bitmap.Width,
Bitmap.Height), Bitmap, Bounds(0, 0, Bitmap.Width,
Bitmap.Height), clred);
Offset := Bitmap.Width + 8;
end;
//Set a caption to each item
TextOut(Rect.Left + Offset, Rect.Top, Combobox1.Items[Index]);
end;
end;
حيث Image1 هي صورة محضرة مسبقا
أو استبدل السطر:
Bitmap := TBitmap(Image1.Picture.Bitmap);
بالسطر:
Bitmap.LoadFromFile('c:\YourImage.bmp');
لاستخدام صورة من جهازك.
المرة القادمة إطرح سؤال في موضوع مستقل لأنه غير مشابه لهذا :)
بالتوفيق.
m_m_saad
21-07-2010, 04:13 PM
جزاك الله خيرا
شرح مستفيض
ينقصي التجربه