AGB  ·  Datenschutz  ·  Impressum  







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

Spaltenbreite DBGrid automatisch anpassen

Ein Thema von Jumpy · begonnen am 14. Feb 2011 · letzter Beitrag vom 12. Okt 2012
Antwort Antwort
Seite 3 von 3     123   
andydp

Registriert seit: 4. Aug 2006
36 Beiträge
 
#21

AW: Spaltenbreite DBGrid automatisch anpassen

  Alt 10. Okt 2012, 14:57
Hallo Leute

Hab das StringGrid von

http://www.tmssoftware.com/site/advgrid.asp


genommen. Ist genial, damit kannn man alles machen.
Mit einer einfachen Programmzeile:

Code:
AdvStringGrid1.AutoSizeColumns(True, 4);
Werden die Spalten automatisch an die Textgrösse angepasst.
Ist nicht ganz billig, aber wenn man die Zeit fürs "Rumwursteln" rechnet. Bestimmt nicht die schlechteste Wahl.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#22

AW: Spaltenbreite DBGrid automatisch anpassen

  Alt 10. Okt 2012, 19:02
Das Argument, das das Ganze bei 12 Mio Datensätzen vielleicht doch etwas länger dauert kann man dadurch begegnen, das man einfach vorgibt, das die Messung der Spaltenbreite nach X Zeilen beendet wird. So macht das DevExpress. Dann werden nur die ersten (z.B.) 500 Zeilen eingelesen per Canvas.GetTextWidth ausgemessen. Das reicht eigentlich immer, denn wer scrollt schon 500 Zeilen nach unten.

Das dynamische Anpassen hatte ich mal gemacht, als ich paging implementiert habe. Man freut sich, das es so schön funktioniert, aber irgendwie nervt es nach ner WEile.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#23

AW: Spaltenbreite DBGrid automatisch anpassen

  Alt 11. Okt 2012, 08:31
Ich lasse gewöhnlich den Anwender entscheiden, wie breit er seine Spalten haben möchte, und speichere die Abmessungen in einer extra Tabelle, in der nur solche Anwender-Daten hinterlegt werden. Meine DBGrids starten meist – d.h. wenn es so viele Felder in der Tabelle gibt, daß sie auch auf einem sehr breiten Screen nicht alle gleichzeitig darstellbar sind – mit einer Standard-Spaltenbreite, die sich nicht an der möglichen Länge der Tabellen-Inhalte orientiert, sondern an der Länge des Spalten-Titels. Der Anwender kann sich dann seine bevorzugten Spaltenbreiten selber einstellen, seine Einstellungen werden beim Beenden des Programms (oder auch, wenn man will, nach jeder Spaltenbreiten-Änderung) in der DB gespeichert und bei Programmstart wieder eingelesen und angewendet:

Delphi-Quellcode:
// Spaltenbreiten DBGrid_V_Artikel in FormMain
     z := FormMain.DBGrid_V_Artikel.Columns.Count -1;
     FOR i := 0 TO z DO
     BEGIN
          Aus := IntToStr(i);
          IF i < 10 THEN Aus := N + Aus;
          Aus := 'TAB_ARTIKEL_' + Aus;
          FormMain.DBGrid_V_Artikel.Columns[i].Width := DatMod.Dset_Tabellen.FieldByName(Aus).AsInteger;
     END;
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
672 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Spaltenbreite DBGrid automatisch anpassen

  Alt 12. Okt 2012, 08:22
Ich lasse gewöhnlich den Anwender entscheiden, wie breit er seine Spalten haben möchte, und speichere die Abmessungen in einer extra Tabelle, in der nur solche Anwender-Daten hinterlegt werden.
Dito, nur streame ich die DBGrid.Columns in ein Blob-Feld. Damit spart man sich das Iterieren und hat aber auch gleich andere Eigenschaften (wie zB Lookup-Listen u.ä.) mit drin.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#25

AW: Spaltenbreite DBGrid automatisch anpassen

  Alt 12. Okt 2012, 08:26
Ich lasse gewöhnlich den Anwender entscheiden, wie breit er seine Spalten haben möchte, und speichere die Abmessungen in einer extra Tabelle, in der nur solche Anwender-Daten hinterlegt werden.
Dito, nur streame ich die DBGrid.Columns in ein Blob-Feld. Damit spart man sich das Iterieren und hat aber auch gleich andere Eigenschaften (wie zB Lookup-Listen u.ä.) mit drin.
Die Einstellungen in ein Blobfeld zu streamen ist mir noch nicht in den Sinn gekommen, scheint aber eine gute Idee zu sein. Muß ich bei Gelegenheit mal ausprobieren. Vielen Dank für deine Anregung.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 13:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz