easyDelphi Q&A
+3 تصويتات
115 مشاهدات

عند سؤالين في سؤال واحد:

01- كيف جعل عرض اعمدة الديبيقريد (DBGrid) بعرض النص, اي بعرض اطول نص موجود في الديبيقريد (DBGrid) .

02-كيف جعل عرض اعمدة الديبيقريد (DBGrid) ثابت.

سُئل في تصنيف Delphi بواسطة (4,210 نقاط) | 115 مشاهدات
 
إني أحاول الأجابة منذ ساعة أو أكثر لكن الباتن الخاص بإضافة الأجابة لا يعمل .....؟؟؟؟ لا أدري ماذا يجري للموقع ؟؟؟؟
انتظر جوابك, ان شاء الله

3 إجابة

–1 تصويت
اليك الموضوع التالي عسى يفيدك

https://www.thoughtco.com/auto-fix-dbgrid-column-widths-4077417
تم الرد عليه بواسطة (730 نقاط)
اضافة روابط فقط بدون شرح يعد مخالفة .
الاصل هو شرح والافادة . اما اضافة روابط فهذا يستطيع علمه في جوجل .
حاول الاجابة على السؤال قدر الامكان . وضع شرح . ثم لا مانع من وضع رابط لدعم اجابتك .
لا نريد ان يتحول الموقع لسؤال ونتائج بحث .. نريده سؤال وجواب .
شكرا لك, هل يمكن الشرح بالعربي.
ليس هذا هو المطلوب, الرابط الذي وضعته خاص بتغير عرض العمود مع تغير عرض النافذة.
+2 تصويتات

تكتب الكودين بهذ الترتيب :

DBGrid1.AutoSizeColumns ; // لكي يكون عرض كل عمود حسب محتوى النص الذي بداخله

ثم تقوم بتثبيت  عرض العمود الذي تريد تثبيت عرضه :
DBGrid1.Columns[0].Width:= 100; // 100 اذا أردت تثبيت عرض العمود الأول بالقيمة
DBGrid1.Columns[1].Width:= 150; // 150 اذا أردت تثبيت عرض العمود الثاني بالقيمة

و هكذا ........

 

تم الرد عليه بواسطة (920 نقاط)
عُدل بواسطة
بنسبة للتعليمة الخاصة بجعل عرض كل عمود حسب محتوى النص الذي بداخل لم تنجح
التعلييمة عندي تشتغل و عرض الأعمدة  يظهر على حسب أطول نص
هل تقصد لم تنجح أنه يظهر خطأ أم أنها لم تفي بالغرض
على العموم أنا استخدم فري باسكال بيئة لازاروس ربما يختلف ذلك عن الدلفي
+3 تصويتات
 
type
  TCustomGridHelper = class helper for TCustomGrid 
  protected 
    function FindHeader (AParent: TFmxObject): THeader; 
  public 
    procedure AdjustGrid; 
    procedure AdjustStretchColumn (ACol: integer); 
    function GetHeader: THeader; 
    property Header: THeader read GetHeader; 
  end ; 


procedure TCustomGridHelper.AdjustGrid; 
var
  edt: TEdit; 
  headerItem: THeaderItem; 
  I: Integer; 
  J: Integer; 
begin 
  if Header <> nil then begin
    for I: = 0 to Header.Count - 1 do begin
      headerItem: = Header.Items [I]; 
      if headerItem <> nil then begin 
        if I <2 then
          headerItem.TextAlign: = TTextAlign.taLeading 
        else
          headerItem.TextAlign: = TTextAlign.taTrailing; 
        headerItem.Font.Size: = 12; 
      end ; 
    end ; 
  end ; 
  for I: = 0 to ColumnCount - 1 do begin 
    for J: = 0 to RowCount - 1 do begin
      edt: = (Columns [I] .CellControlByRow (J) as TEdit); 
      if edt <> nil then begin 
        if I <2 then
          edt.TextAlign: = TTextAlign.taLeading 
        else
          edt.TextAlign: = TTextAlign.taTrailing; 
        edt.Font.Size: = 12; 
      end ; 
    end ; 
  end ; 
end ; 

procedure TCustomGridHelper.AdjustStretchColumn (ACol: integer); 
var
  I: integer; 
  W: single; 
begin
  W: = 5 + VScrollBar.Width; 
  for I: = 0 to ColumnCount - 1 do begin 
    if I = ACol then Continue; 
    if Columns [I] .Visible then
      W: = W + Columns [I] .Width; 
  end ; 
  Columns [ACol] .Width: = Width - W; 
end ; 

function TCustomGridHelper.FindHeader (AParent: TFmxObject): THeader; 
var
  I: integer; 
begin 
  for I: = 0 to AParent.ChildrenCount - 1 do begin 
    if AParent.Children [I] is THeader then
      Exit (THeader (AParent.Children [I])); 
  end ; 
  for I: = 0 toAParent.ChildrenCount - 1 do begin
    result: = FindHeader (AParent.Children [I]); 
    if result <> nil then
      Exit (result); 
  end ; 
  result: = nil ; 
end ; 

function TCustomGridHelper.GetHeader: THeader; 
begin
  Result: = FindHeader (Self); 
end ;

قم بإضافة هذا الهالبر إلى اليونيت اللي فيها الديبيقريد ثم فقط قم بمنادات أحد الأجراءات التي تحتاج تحت إسم الديبيقريد و سوف تجد أن الدلفي قد قام بالأضافة لهذه اجراءات على مستوى أي ديبيقريد هو من أصل "CustomGrid".

أو قم بإستعمال طريقة الهاك فقط بإضافة هذه اليونيت هنا إلى برنامجك "DPR" ثم قم بمنادات فقط الأجراء الذي بداخل اليونيت . المصدر من هنا.

 و حظا طيبا .

تم الرد عليه بواسطة (13,990 نقاط)
عُدل بواسطة
01- كيف تظيف الهالبر
02- عند اظافة اليونت التي في الرابط وبعد التنفيذ تتاخل اعمدة الديبيقريد مع بعضه البعض
إنتظر حتى أعمل لك مثال جاهز .... الوقت يمر بسرعة و المشكلة في الوقت فقط ..
انا انتظر جوابك اخ bravesofts
خطاء عند اضافة الهالبر class helper

اسئلة متعلقة

0 تصويتات
0 إجابة
سُئل نوفمبر 23 في تصنيف SQL بواسطة KHALED (6,370 نقاط) | 33 مشاهدات
+4 تصويتات
2 إجابة
0 تصويتات
0 إجابة
سُئل نوفمبر 27 في تصنيف Delphi بواسطة Amar Gozim (10,480 نقاط) | 38 مشاهدات
+3 تصويتات
2 إجابة
سُئل سبتمبر 3 في تصنيف vcl بواسطة َAbdallah (2,080 نقاط) | 62 مشاهدات
ادعُ اصدقائك في الفايسبوك لمشاركتك

مرحبًا بك إلى EasyDelphi Q&A، حيث يمكنك طرح الأسئلة والحصول على الإجابة عليها من المستخدمين الآخرين.

لا يسمح بطلب او السؤال عن كراك او تفعيل او كسر او فك او اي شيء يخالف اتفاقيات الترخيص  مهما كان السبب ومهما كان البرنامج ونوعه. ولا حتى نشر روابط تحتوي على مثل هذه الاشياء لا في الاسئلة ولا في الاجابات ولا التعليقات . نهائيا

280 سؤال
486 إجابة
866 تعليق
175 مستخدم