AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid Column autosize

Ein Thema von BenjaminHelbig · begonnen am 16. Dez 2003 · letzter Beitrag vom 18. Dez 2003
Antwort Antwort
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#1

Re: DBGrid Column autosize

  Alt 18. Dez 2003, 00:23
Hallo BenjaminHelbig,

ich verwende zur Lösung dieses Problems folgende Prozedur, getestet und funktionsfähig:

Code:
procedure UP_MinTabRow(Tab : TTable; dbg : TDBGrid);
const
  chkanz = 300; // CHecK ANZahl von Datensätzen zur Beschränkung des Zeitaufwandes
  maxfldanz = 100; // max. Anz. der Felder, die betrachtet werden
  minwidth = 20; // min. Breite
  korrwidth = 10; // Korr. der Spaltenbreite wg. besserer Optik
var
  i,
  fcnt,  // Field-Count
  aktrec,
  zel,
  len : integer;
  farr : array[0..maxfldanz] of integer;
begin
  // Tab1 - TTable
  if not Tab.Active then exit;
  Tab.DisableControls;

  aktrec := Tab.RecNo;
  zel := 0;
  for i:=0 to maxfldanz do farr[i] := minwidth;

  Tab.First;
  fcnt := Tab.FieldCount;
  if fcnt > maxfldanz then fcnt := maxfldanz;
  while (not Tab.EOF) and (zel < chkanz) do begin
    for i:=0 to fcnt-1 do begin
      len := dbg.Canvas.TextWidth(dbg.Columns.Grid.Fields[i].Text);
      if len > farr[i] then farr[i] := len;
    end;
    Tab.Next;
    inc(zel);
  end;
  for i := 0 to fcnt-1 do begin
    try
      dbg.Columns[i].Width := farr[i] + korrwidth;
    except
      dbg.Columns[i].Width := dbg.Columns[i].Width;
    end;
  end;
  Tab.RecNo := aktrec;
  Tab.EnableControls;
end;
mfg
eddy
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz