delphi4arab منتديات دلفي للعرب

نسخة كاملة : توسيط الكلام في الخلية في StringGrid
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكــم ورحمـة الله وبركاتــة
أخوتي الأكارم
كيف يمكن توسيط الكلام في الخلية في StringGrid
طبعاً ليس في كل خلايا الـ StringGrid ولكن السطر الأول فقط
أو كيفية استخدام Align للخلايا في StringGrid
لا أضن أخي الكريم أن المكون StringGrid يتوفر على هده الخاصية يمكن برجمة مكون مشتق منه وأضف له الخاصية التي تمكنك من دلك
يمكنك ان تستعين بدرس حول المكونات و هو مطروح في الدورة من قبل المشرفين جزاهم الله خيرا
انظر لهذا المقال فهو رائع

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

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

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

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