delphi4arab منتديات دلفي للعرب
رسم TBitmap في مكون TComboBox - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : رسم TBitmap في مكون TComboBox (/showthread.php?tid=2216)



رسم TBitmap في مكون TComboBox - m_m_saad - 21-07-2010

السلام عليكم ورحمه الله وبركاته
وجدت امرا في دلفي help


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

لكن لم اعرف كيف استخدمه وواضح انه يمكن تخصيص من خلال هذا الامر صورة خلفيه للكومبوبوكس
كيف اخصص صورة - من خلال مسار path علي الهارددسك
او حتي تخصص وتحفظ داخل البرنامج و استدعيها
عن طريق الكود


رسم TBitmap في مكون TComboBox - kachwahed - 21-07-2010

وعليكم السلام ورحمة الله وبركاته
جيد أنك وضحت السؤال 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
بالتوفيق.



رسم TBitmap في مكون TComboBox - m_m_saad - 21-07-2010

جزاك الله خيرا
شرح مستفيض
ينقصي التجربه