الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

//دع عرض العمود في ال TDBgrid يتغير بشكل أوتوماتي

مغلق
بدأه imadouzoun في 15 ديسمبر 2005 · 0 رد · 490 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1

//دع عرض العمود في الـ TDBgrid يتغير بشكل أوتوماتيكي ..

(*
هدا الكود عرض الأعمدة بحيث تناسب محتوياتها 
أيضاً ميزة أخرى هدا السطر من الكود سيخيرك فيما إدا أردت التأثير فقط على العمود الأخير أم على الكل 
  If aChangeAll = False then only the last col will be modified.
*)
procedure ChangeColumnWidths(DBGrid: TDBGrid; aChangeAll: boolean);
var
  NewWidth,
  TotalColumnWidth,
  ColumnCount,
  GridClientWidth,
  StepWidth,
  i: integer;
begin
  ColumnCount := DBGrid.Columns.Count;
  if ColumnCount = 0 then Exit;

  //البحث عن العرض الحقيقي لجميع الأعمدة 
  TotalColumnWidth := 0;
  for i := 0 to ColumnCount-1 do
    TotalColumnWidth := TotalColumnWidth + DBGrid.Columns.Width;
  if dgColLines in DBGrid.Options then
    TotalColumnWidth := TotalColumnWidth + ColumnCount;

  //ما هو العرض الكلي للـ أقصد لمجموع عرض الأعمدة في الـ Grid ?
  GridClientWidth := DBGrid.Width - GetSystemMetrics(SM_CXVSCROLL);
  if dgIndicator in DBGrid.Options then begin
    GridClientWidth := GridClientWidth - IndicatorWidth;
    if dgColLines in DBGrid.Options then
      Dec(GridClientWidth);
  end;
  if DBGrid.BorderStyle = bsSingle then begin
    if DBGrid.Ctl3D then // 2 * 2 Pixel
      GridClientWidth := GridClientWidth - 4
    else // 2 * 1 Pixel
      GridClientWidth := GridClientWidth - 2;
  end;

  // توسيع عرض الأعمدة 
  if TotalColumnWidth < GridClientWidth then begin
    StepWidth := (GridClientWidth - TotalColumnWidth) div ColumnCount;
    // جميع الأعمدة
    if aChangeAll then begin
      for i := 0 to ColumnCount-1 do
        DBGrid.Columns.Width := DBGrid.Columns.Width + StepWidth;
    // فقط الأخير
    end else
      DBGrid.Columns[ColumnCount-1].Width := DBGrid.Columns[ColumnCount-1].Width + ColumnCount * StepWidth;
  end

  // تقليل عرض الأعمدة
  else if TotalColumnWidth > GridClientWidth then begin
    StepWidth := (TotalColumnWidth - GridClientWidth) div ColumnCount;
    if (TotalColumnWidth - GridClientWidth) mod ColumnCount <> 0 then Inc(StepWidth);
    // جميع الأعمدة
    if aChangeAll then begin
      for i := 0 to ColumnCount-1 do begin
        NewWidth := DBGrid.Columns.Width - StepWidth;
        if (NewWidth > 5) then DBGrid.Columns.Width := NewWidth;
      end;
    // فقط الأخير
    end else begin
      NewWidth := DBGrid.Columns[ColumnCount-1].Width - ColumnCount * StepWidth;
      if (NewWidth > 5) then DBGrid.Columns[ColumnCount-1].Width := NewWidth;
    end;
  end;

end;

المبرمج عماد .... B) B)

دروس و كتب مفيدة----------------------كتيب الإجرائيات المخزنةتعرف على اللغة Transact SQL <<-->> كتيب عن تنصيب قواعد البيانات Sql Server باللغة العربية كتيب عن إنشاء قواعد البيانات في SQL Server باللغة العربية <<-->> درس مع الأمثلة عن المؤشرات و التعامل معها في الـ T-SQLالعبارات الشرطية و الحلقات في T-SQL <<-->> شرح لبعض الـ Extended Stored Procedure استخدام مكتبات الـ Dot Net الخاصة بك في الـ Sql Server 2005 <<-->> التعامل مع المصفوفات من خلال الـ T-SQLتعابير الجداول الشائعة في SQL Server 2005 <<-->>الاتصال بالأداة SQL Server Management Studioحلول سريعة و لمحات برمجية --------------------------------التصدير إلى إكسل : طريقة أولى : طريقة بسطر واحد من الكود <<-->> طريقة ثانية : طريقة تحتاج إنشاء إجرائية مخزنةً تجهيز بيانات جدول بالصيغة XML تمهيداً لحفظها كملف <<-->> تصدير البيانات إلى ملفات نصية برمجياً إغلاق جميع الإتصالات المفتوحة بقاعدة بيانات محددة .. تمهيداً لاسترجاعها أو حذفها <<-->> الاستعلام بناء على وقت مخزن بالصيغة العربية ضمن حقل نصي ..حذف السجلات المتكررة و إبقاء عدد محدد منها في جدول.. <<-->> أسرع طريقة لحذف سجلات جدول كيف احصل على اسم جهازي والباسوورد باستخدام T-SQL <<-->> حشر أنواع الصور المختلفة في حقل من نوع Image باستخدام إجرائية مخزنة .كيف تعرف أنواع الصور المخزنة في حقل من نوع Image .. <<-->> إجرائيات مخزنة ببارامترات ديناميكية مفيدة جداً للاستعلامات استخدام رقم الحقل بدلاً من الإسم في عبارات الإستعلام <<-->> من هو أضخم الجداول في قاعدة بياناتي ؟معرفة زمن تنفيذ الإجرائيات ( لتختار الطريقة الأسرع بين إجرائياتك المخزنة ) <<-->> التعامل مع الـ Rules برمجياً الحصول على آخر صف في الجدول <<-->> قراءة ملفات XML باستخدام T-SQL برمجياً (مثال مرفق)سحب بيانات ملف إكسل إلى الـ SQL Server <<-->> تشفير النسخة الاحتياطية بكلمة مرور <<-->> التخلص من البيانات المكررة <<-->> حل مشكلة التاريخ الهجريDifferential Backup بالتعريف---------- لا إله إلا الله .. محمد رسول الله

أخوكم في الله..  Imad Ozone

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…