رسم TBitmap في مكون TComboBox
#1
السلام عليكم ورحمه الله وبركاته
وجدت امرا في دلفي help


كود :
combobox1.Brush.Bitmap.Assign()

لكن لم اعرف كيف استخدمه وواضح انه يمكن تخصيص من خلال هذا الامر صورة خلفيه للكومبوبوكس
كيف اخصص صورة - من خلال مسار path علي الهارددسك
او حتي تخصص وتحفظ داخل البرنامج و استدعيها
عن طريق الكود
الرد
#2
وعليكم السلام ورحمة الله وبركاته
جيد أنك وضحت السؤال Smile
شيء مثل هذا:
كود :
ComboBox1.Brush.Bitmap := Image1.Picture.Bitmap;
لكن...
الرسم في مثل هذه المكونات يتم باستخدام حدث مخصص لذلك
في المكون TComboBox هنا حدث يدعى OnDrawItem يستخدم لتخصيص شكل معين للـ Combo
بعد ضبط خاصية Style على csOwnerDrawVariable لتعلن أنك أنت من سيقوم بالرسم في المكون
اكتب في الحدث OnDrawItem للـ TComboBox:
PHP كود :
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);
بالسطر:
PHP كود :
Bitmap.LoadFromFile('c:\YourImage.bmp'); 
لاستخدام صورة من جهازك.

المرة القادمة إطرح سؤال في موضوع مستقل لأنه غير مشابه لهذا Smile
بالتوفيق.
الرد
#3
جزاك الله خيرا
شرح مستفيض
ينقصي التجربه
الرد


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


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