Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi DBGrid -> Spaltenbreite, ColumReize (https://www.delphipraxis.net/38895-dbgrid-spaltenbreite-columreize.html)

TypusMensch 25. Jan 2005 18:50


DBGrid -> Spaltenbreite, ColumReize
 
Man kann bekanntlich über die Option "dgColumnRezise" eines DBGrid's die Spaltenbreite dieser Tabelle verändern. Das ist gut und auch gewollt. Aber ich möchte NICHT, dass man auch die Tabellen verschieben kann. Leider habe ich feststellen müssen, dass beides über die genannte Option ein- bzw. ausgeschaltet wird. Wie kann ich nun das eine beibehalten, dass andere abstellen?

Danke im vorraus.

TypusMensch 27. Jan 2005 10:19

Re: DBGrid -> Spaltenbreite, ColumReize
 
Will ja eigentlich nich das Thema hochschieben, aber es ist wirklich dringend... :?

Wirklich keiner eine Ahnung?......

Sourcemaker 27. Jan 2005 10:29

Re: DBGrid -> Spaltenbreite, ColumReize
 
Weswegen dürfen die Spalten nicht verschoben werden ?
Wegen DrawColumnCell ?

Grüße

Frank

TypusMensch 27. Jan 2005 14:56

Re: DBGrid -> Spaltenbreite, ColumReize
 
:?: :roteyes: :?:

Ich erkläre es einmal ausführlich:
Die Spaltenbreite darf geändert werden, da die Spaltenbreiten sich in eine INI-Datei speichern, damit der User nicht jedesmal die Breiten auf seine gewünschte Größe setzten muss. Sie werden auch von der INI-Datei geladen.

Nummer | Name | Notiz
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 | TV | Großbild
2 | Handy | Nokia

Verschiebt er aber die Tabellenspalte Nummer in die Mitte und verändert dann die Breite der Nummer auf 20 Pixel wird Tabellenspalte 2 mit 20 Pixeln gespeichert. Nach einem Neustarten des Programms ist aber wie "Nummer" die erste Tabellenspalte und "Name" die Zweite. So wird die Tabellenspalte "Name" mit 20 Pixelbreite geladen, was ja falsch is. Am genialsten wäre es natürlich auch die Reihenfolge der Tabellenspalten zu speichern, aber das hab ich einfach nicht hinbekommen. Daher wollte ich es so regeln, dass die Tabellenspalten nicht verschoben werden können, aber die Spaltenbreite sehr wohl verändert werden kann. Da beides aber über DBGridx.option -> dgColumnRezise geregelt wird ist nur beides oder keines möglich... :cry:

edit: Thema ggf. nach "VCL-Komponenten und Controls" verschieben... ?!? :nerd:

TypusMensch 27. Jan 2005 15:08

Re: DBGrid -> Spaltenbreite, ColumReize
 
Ai.... is doch ne feine Sache...

Delphi-Quellcode:
DBGridx.Columns.SaveToFile(xxx);
DBGridx.Columns.LoadFromFile(xxx);
Nur die Augen auf machen muss ich's nächste Mal. Aber trotzdem interessiert es mich, wie ich das einzeln ansteuern könnte....

Sourcemaker 27. Jan 2005 15:42

Re: DBGrid -> Spaltenbreite, ColumReize
 
Zum Speichern von Columns und allen anderen Control.Properties sowie Windowstate, Position,
Activecontrol als auch frei definierbare Werte gibt es FormStorage eine geniale Sache der RxLib
aber auch in der Jedi zu finden (diese würde ich auch benutzen da aktuell).
Die Einstellungen werden wahlweise in Ini-Dateien oder der Registry gespeichert.
Die eventuell auftretene Problematik von gespeicherten Columns in Zusammenhang mit DrawColumnCell
läßt sich durch ein Array das die Spaltenreihenfolge speichert leicht lösen.

Grüße

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:22 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