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

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



كيف يمكن تلوين حول النص في Listview - M_Mori2010 - 16-11-2012

السلام عليكم ورحمة الله وبركاته
أخوتي الكرام
كيف يمكننا التلوين حول النص فقط بمعنى اخر والذي أٌريْده هو استخدام ظل او ادخال لونين في Item
معين فما هي الطريقة مثال توضيحي
كود :
http://store2.up-00.com/Sep12/ZZE91319.jpg
كما ترون حول اللون يوجد لون اخر فما هي الطريقة اخوتي الكرام ؟
جزاكم الله كل خير


كيف يمكن تلوين حول النص في Listview - sa7er100 - 18-11-2012

على ما اظن الموجود بالصورة هو مكون غير مجاني وليس من مكونات الفا


كيف يمكن تلوين حول النص في Listview - M_Mori2010 - 19-11-2012

أخي ساحر شككت بالامر ذاته وقمت بجلب مكون فيه معظم ميزات الشكل المطلوب لكن لم اجد فيه خاصية التلوين حول النص :| سوف ابقى على بحث حتى اجد المكون وحتى ان لم يكن مجاني سأقوم بشرائه


كيف يمكن تلوين حول النص في Listview - kachwahed - 19-11-2012

وعليكم السلام ورحمة الله وبركاته

خدمة التلوين حول النص أو ظل النص Shadow ما هو في الواقع إلا نفس النص مكتوب مرتين كل مرة بتنسيق مختلف

المثال مقتبس بتصرف من:
كود :
http://www.delphigroups.info/2/9/631232.html

PHP كود :
procedure Basic_Text3D
  
(
  const 
PText : String;
  const 
PCanvas : TCanvas;
  const 
PPosition : TPoint;
  const 
PTextColour : TColor
  
);
begin
  
//Should save the Canvas state here.
  
PCanvas.Brush.Style := bsClear;
  
PCanvas.Pen.Mode := pmCopy;
  
PCanvas.Pen.Style := psSolid;
  
//Dark Shadow.
  
PCanvas.Font.Color := clGray;
  
PCanvas.TextOut( PPosition.X + 1, PPosition.Y + 1, PText );
  
//Light Shadow.
  
PCanvas.Font.Color := clWhite;
  
PCanvas.TextOut( PPosition.X - 1, PPosition.Y - 1, PText );
  
//Actual Text.
  
PCanvas.Font.Color := PTextColour;
  
PCanvas.TextOut( PPosition.X, PPosition.Y, PText );
  
//Should restore the Canvas state here.
  
end; //Basic_Text3D

procedure TForm1.ListView1DrawItem(Sender: TCustomListView;
  
Item: TListItem; Rect: TRect; State: TOwnerDrawState);
begin
    Basic_Text3D
(Item.Caption, Item.ListView.Canvas, Rect.TopLeft, clWindowText);
end; 

أكتب وارسم ما تريد في OnCustomDrawItem ولا تنسى تفعيل OwnerDraw
المزيد: مجلة المنتدى، العدد الخاص الأول: الرسم على المكونات في دلفي

لنتائج أحسن استخدم +GDI للرسم

بالتوفيق.



كيف يمكن تلوين حول النص في Listview - M_Mori2010 - 20-11-2012

أخي الكريم kachwahed أولاً شكراً لك ثانياً لم تفلح معي الطريقة اخي نحن نرغب بالتلوين حول الاسم تماماً ولا نرغب بوضع مستطيل بداخله الاسم في الاعلى حاولت التعديل لكني لم افلح هل لنا بمثال يكون كما في الصورة ؟ وجزاك الله كل خير


كيف يمكن تلوين حول النص في Listview - kachwahed - 20-11-2012

إقتباس :ولا نرغب بوضع مستطيل بداخله الاسم
المثال ليس كذلك.
الخدعة هي هي، فقط الأمر يتطلب مهارات في الرسم البرمجي (مثال: تكبير الخط، زيادة الشفافية، التعديل على الأطراف...) للحصول على المطلوب بدقة، شيء مثل:

.jpg   DropShadow.JPG (الحجم : 2.25 ك ب / التحميلات : 58)

يمكنك التعديل على الرسم أكثر، أنا لا أحسن الرسم Sad
المثال مرفق.



كيف يمكن تلوين حول النص في Listview - M_Mori2010 - 20-11-2012

مشكور على الجهد الذي بذلته اخي جزاك الله كل خير