Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid, DataSource, Spaltenbreite (https://www.delphipraxis.net/26996-dbgrid-datasource-spaltenbreite.html)

motu 2. Aug 2004 16:09


DBGrid, DataSource, Spaltenbreite
 
Ich lasse ein DBGrid per DataSource füllen. Die DS greift auf eine Access-Datenbank zu. Ist es möglich die Spaltenbreite im DBGrid zu beeinflussen?

bttb930 2. Aug 2004 16:10

Re: DBGrid, DataSource, Spaltenbreite
 
ja, such mal nach ColumnWidth

motu 2. Aug 2004 16:11

Re: DBGrid, DataSource, Spaltenbreite
 
Zitat:

Zitat von bttb930
ja, such mal nach ColumnWidth

Das hab ich garnicht.

bttb930 2. Aug 2004 16:17

Re: DBGrid, DataSource, Spaltenbreite
 
TDBGrid hat eine Eigenschaft Columns. Dahinter verbirgt sich eine Liste von Spalten - jede dieser Spalten hat eine Eigenschaft Width. Die kannst Du einzeln anpassen (DBGrid.Columns[2].Width := 200).

motu 2. Aug 2004 16:18

Re: DBGrid, DataSource, Spaltenbreite
 
Zitat:

Zitat von bttb930
TDBGrid hat eine Eigenschaft Columns. Dahinter verbirgt sich eine Liste von Spalten - jede dieser Spalten hat eine Eigenschaft Width. Die kannst Du einzeln anpassen (DBGrid.Columns[2].Width := 200).

richtig, wenn ich aber spalten erstelle und die breite einstelle, wird der inhalt meiner datasource nicht mehr in mein grid gepackt. :(

bttb930 2. Aug 2004 16:29

Re: DBGrid, DataSource, Spaltenbreite
 
dann erstell halt keine spalten sondern pass die vorhandenen an.

motu 3. Aug 2004 07:18

Re: DBGrid, DataSource, Spaltenbreite
 
Zitat:

Zitat von bttb930
dann erstell halt keine spalten sondern pass die vorhandenen an.

Hmm. Leider werden während der Designzeit keine Spalten angezeigt. Die DataSource und somit das Grid wird erst während der Laufzeit gefüllt.

bttb930 3. Aug 2004 08:13

Re: DBGrid, DataSource, Spaltenbreite
 
du kannst die spalten entweder ebenfalls zur laufzeit anpassen

oder

zur designzeit die datasource aktivieren - dann müssten die spalten erstellt werden und du siehst sie eigentlich schon (zur designzeit).

motu 3. Aug 2004 08:16

Re: DBGrid, DataSource, Spaltenbreite
 
Zitat:

Zitat von bttb930
du kannst die spalten entweder ebenfalls zur laufzeit anpassen

das ist mir aber zu umständlich, da dabei mehr zeit gebraucht wird, als die Tabelle dann genutzt wird.

Zitat:

Zitat von bttb930
zur designzeit die datasource aktivieren - dann müssten die spalten erstellt werden und du siehst sie eigentlich schon (zur designzeit).

Hä? Aktivieren? Das einzigste, was ich finde ist "Enabled" und das ist "True"

Hansa 3. Aug 2004 09:32

Re: DBGrid, DataSource, Spaltenbreite
 
Er hat gemeint, daß das DataSet auf "active=true" gesetzt werden soll, nicht die DataSource. Das wird immer wieder verwechselt. 8)

motu 3. Aug 2004 09:36

Re: DBGrid, DataSource, Spaltenbreite
 
Zitat:

Zitat von Hansa
Er hat gemeint, daß das DataSet auf "active=true" gesetzt werden soll, nicht die DataSource. Das wird immer wieder verwechselt. 8)

Tja, ein Active kennt mein DBGrid nicht.

Hansa 3. Aug 2004 09:46

Re: DBGrid, DataSource, Spaltenbreite
 
das DataSet, darum geht es! Weder die DataSource noch ein DBGrid haben eine property "active". Ihr müßt mehr lesen. :lol: Wird irgendwas anderes als Zugriffskomponente benutzt, dann halt da nachgucken.

motu 3. Aug 2004 09:48

Re: DBGrid, DataSource, Spaltenbreite
 
[quote="Hansa"]das DataSet, darum geht es! Weder die DataSource noch ein DBGrid haben eine property "active". [quote]

Dann kommt: "ADOQuery: Eigenschaft SQL fehlt"

Hansa 3. Aug 2004 09:59

Re: DBGrid, DataSource, Spaltenbreite
 
Und nun ? Das ganze Programm dürfte so wohl nicht gehen. Wenn die Datenbankabfrage nicht mal richtig eingestellt ist. :zwinker:

motu 3. Aug 2004 10:01

Re: DBGrid, DataSource, Spaltenbreite
 
Zitat:

Zitat von Hansa
Und nun ? Das ganze Programm dürfte so wohl nicht gehen. Wenn die Datenbankabfrage nicht mal richtig eingestellt ist. :zwinker:

Jeht super, nur nich mehr, seit noch Zusätze jefordert sind. Aber da bin ick dran. Seit Änderung des SQL Statements sind ja auch erst die Spalten zu breit

Hansa 3. Aug 2004 10:06

Re: DBGrid, DataSource, Spaltenbreite
 
Übrigens : Das DBgrid ist ziemlich stark an die Datenmenge gekoppelt. Wenn die Spalten zu breit sind, dann würde ich mal in der Tabelle die Größe des Feldes verändern. Die Spalte im Grid wird immer so breit, daß das größte Feld noch rein paßt.

motu 3. Aug 2004 10:08

Re: DBGrid, DataSource, Spaltenbreite
 
Zitat:

Zitat von Hansa
Übrigens : Das DBgrid ist ziemlich stark an die Datenmenge gekoppelt. Wenn die Spalten zu breit sind, dann würde ich mal in der Tabelle die Größe des Feldes verändern. Die Spalte im Grid wird immer so breit, daß das größte Feld noch rein paßt.

Wirklich??? :freak:
Wenn Du eine UNION Abfrage hast, zerfetzt die Dir genau das. Seit ich jetzt wieder eine einfache Abfrage habe, paßt es wieder.

renekr 24. Sep 2005 13:59

Re: DBGrid, DataSource, Spaltenbreite
 
Hi,
als kleiner Zusatz anreiz.
Ich habe folgendes gemacht:
Einstellen der Spaltenbreite ,speichern und beim ausführen des Querys load:


SAVE:
Delphi-Quellcode:
procedure TForm1.Button45Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to dbgrid1.columns.Count - 1 do
  begin
   ini.Writeinteger('Spaltenbreite',dbgrid1.columns.Items[i].FieldName,dbgrid1.columns.Items[i].width);
  end;


end;
--------------
LOAD;

Delphi-Quellcode:
procedure TForm1.Button46Click(Sender: TObject);
var
  i: integer;
begin
  for i := 0 to dbgrid1.columns.Count - 1 do
    with dbgrid1.columns.Items[i] do
   width := ini.readinteger('Spaltenbreite',fieldname,i);
end;

PS: Ini muß natürlich vorher Creat gemacht werden .
Zum Originalzustand herstellen:

Delphi-Quellcode:
ini.EraseSection('Spaltenbreite');
Das ganze kann man nat. als Procedur erstellen und beim Onshow oder so einbinden.



mfg

[edit=alcaeus]Delphi-Tags eingefuegt. Mfg, alcaeus[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:34 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 by Thomas Breitkreuz