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

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



توسيط الكلام في الخلية في StringGrid - mouhamadamer - 23-03-2009

السلام عليكــم ورحمـة الله وبركاتــة
أخوتي الأكارم
كيف يمكن توسيط الكلام في الخلية في StringGrid
طبعاً ليس في كل خلايا الـ StringGrid ولكن السطر الأول فقط
أو كيفية استخدام Align للخلايا في StringGrid


توسيط الكلام في الخلية في StringGrid - me_delphi - 24-03-2009

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


توسيط الكلام في الخلية في StringGrid - tempuser - 25-03-2009

انظر لهذا المقال فهو رائع

كود :
http://www.swissdelphicenter.ch/en/showcode.php?id=1596 http://www.festra.com/wwwboard/messages/13369.html

لا أدري إن كان هذا مخالف أم لا ولكن هنا ستجد مقال يحل لك الإشكال
Rolleyes


توسيط الكلام في الخلية في StringGrid - mouhamadamer - 25-03-2009

السلام عليكــم ورحمـة الله وبركاتــة
الأخوة الأكارم
شكراً لكم على المشاركة
الأخ me&delphi: هل بامكانك وضع كود البرمجة.

الأخ tempuser: ممكن تشرح لي الكود الذي تفضلت بذكره وهو على العنوان http://www.swissdelphicenter.ch/en/showcode.php?id=1596
لم أستطع في هذا الكود أن أجعل الخط أفقي فالغاية من الكود جعل النص في الخلية بشكل عمودي
وأنا **** فقط استخدام خاصية Align للخلية (يمين - وسط -يسار)
مع جزيل الشكر


توسيط الكلام في الخلية في StringGrid - tempuser - 30-03-2009

الاخ Mouhmadamer
الهدف من الكود المذكور في الوصلة هو فتح أفق جديد لك لكي ترى مدى الامكانيات التي يمكنك عمله بالتعامل مع الكانفاس حيث يمكنك بشكل برمجي من فعل ماتريد وعليك التجربة في الأكواد بعد دراستها


توسيط الكلام في الخلية في StringGrid - me_delphi - 31-03-2009

PHP كود :
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  
Rect: TRect; State: TGridDrawState);
var 
s: string;
    
drawrect :trect;
begin
  s
:= (sender as tstringgrid).Cells[ acol, arow ];
  if 
length(s) > 0 then
  begin
    drawrect 
:= rect;
    
drawtext((sender as tstringgrid).canvas.handle,pchar(s), length(s), drawrect,dt_wordbreak or DT_CENTER or dt_noprefix );
    if (
drawrect.bottom - drawrect.top) >(sender as tstringgrid).rowheights[arow] then
    begin
      
(sender as tstringgrid).rowheights[arow] := (drawrect.bottom - drawrect.top)
    
end
    
else
    
begin
      drawrect
.Right := rect.Right;
      (
sender as tstringgrid).canvas.fillrect( drawrect );
      
drawtext((sender as tstringgrid).canvas.handle,pchar(s), length(s), drawrect,dt_wordbreak or DT_CENTER or dt_noprefix);
    
end;
  
end;
end; 

منقول للفائدة