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

جعل ال Dbgrid يغير من سعة أعمدته حسب محتواها

بدأه medekhel في 9 نوفمبر 2009 · 0 رد · 680 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1

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

كثيرة هي المشاكل التي تنجم عن عدم قدرتنا عل وضع حد ثابت لعرض أعمدة الـــ

dbgrid

نظرا لتغير المعطيات داخلها لذلك فما رأيك حين تجعل الــــ

dbgrid

يغير من عرض أعمدته بالنظر إلى محتواها إليكم الكود إخواني و أرجو أن تعم الفائدة.


const
DEFBORDER = 10;
var
temp, n: Integer;
lmax: array [0..30] of Integer;
begin
with Grid do
begin
Canvas.Font := Font;
for n := 0 to Columns.Count - 1 do
//if columns[n].visible then
lmax[n] := Canvas.TextWidth(Fields[n].FieldName) + DEFBORDER;
grid.DataSource.DataSet.First;
while not grid.DataSource.DataSet.EOF do
begin
for n := 0 to Columns.Count - 1 do
begin
//if columns[n].visible then begin
temp := Canvas.TextWidth(trim(Columns[n].Field.DisplayText)) + DEFBORDER;
if temp > lmax[n] then lmax[n] := temp;
//end; { if }
end; {for}
grid.DataSource.DataSet.Next;
end; { while }
grid.DataSource.DataSet.First;
for n := 0 to Columns.Count - 1 do
if lmax[n] > 0 then
Columns[n].Width := lmax[n];
end; { With }
end; {SetGridColumnWidths }

procedure TForm1.Button1Click(Sender: TObject);
begin
SetGridColumnWidths(dbgrid3);
end;
procedure SetGridColumnWidths(Grid: Tdbgrid);

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