AGB  ·  Datenschutz  ·  Impressum  







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

DBgrid anpassen

Ein Thema von khh · begonnen am 8. Jan 2009 · letzter Beitrag vom 8. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#1

DBgrid anpassen

  Alt 8. Jan 2009, 10:42
Datenbank: firebird • Version: 2.1 • Zugriff über: zeos
hallo zusammen,
ich habe ein dbgrid mit einer query verbunden.
Im Grid möchte ich nicht alle Felder der Query anzeigen.
Z.B brauche ich zwar die artikel_id, die soll aber nicht im Grid angezeigt werden.
Also habe ich mit :

self.columns[0].width := (self.width -20) div 3;
self.columns[1].width := (self.width -20) div 3;
self.columns[2].width := (self.width -20) div 3;

die Breite der Felder berechnet und mit :
TColumn(self.Columns[0]).Field:= FartikelQuery.FieldByName('artikelnummer'); usw.
die anzuzeigenden Felder definiert.

so habe ich 3 Felder der Datenmenge in der Anzeige, die die Breite des Grid auch komplett ausfüllen.

Leider springt das Grid beim Klick auf das letzte(dritte) Feld auf das 4te Feld der Datenmenge ,welches eigentlich nicht im Grid erscheinen soll., und die felder lassen sich per mausklick nach links scrollen.


die restlichen Einstellungend es Grid sind folgende:
self.ScrollBars:= ssAutoVertical;
self.options:= [dgEditing,dgTitles,dgRowSelect];

Wie kann ich das Grid auf die 3 Felder begrenzen und das Scrollen verhindern?

EDIT: eine unterschiedliche Spaltenbreite wäre in diesem Zusammenhang auch nicht schlecht.
Danke Gruss

KH
Karl-Heinz
  Mit Zitat antworten Zitat
ConstantGardener

Registriert seit: 24. Jan 2006
Ort: Halberstadt
376 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: DBgrid anpassen

  Alt 8. Jan 2009, 10:54
Hallo khh,

mit Doppelclick auf das Grid öffnet sich der Eintragseditor für das Grid. Hier kanst du die Spalten eintragen die dargestellt werden sollen, oder die löschen die nicht angezeigt werden sollen. Wenn hier nichts drin steht werden einfach alle angezeigt. Solltest Du den SQL-Text in der verbundenen Komponente drin haben kanst Du dier im Kontextmenü des Eintagseditors die Spalten automatisch eintragen lassen und die anderen dann löschen.

Du könntest auch dynamisch die Spalten auf visible:=false setzen. Stichwort Columns... des DBGrid

cu cg
Andreas Schachtner
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#3

Re: DBgrid anpassen

  Alt 8. Jan 2009, 10:57
Zitat von ConstantGardener:
Hallo khh,

mit Doppelclick auf das Grid öffnet sich der Eintragseditor für das Grid. Hier kanst du die Spalten eintragen die dargestellt werden sollen, oder die löschen die nicht angezeigt werden sollen. Wenn hier nichts drin steht werden einfach alle angezeigt. Solltest Du den SQL-Text in der verbundenen Komponente drin haben kanst Du dier im Kontextmenü des Eintagseditors die Spalten automatisch eintragen lassen und die anderen dann löschen.

Du könntest auch dynamisch die Spalten auf visible:=false setzen. Stichwort Columns... des DBGrid

cu cg
danke dir, dann muss ich wohl die ungewünschten Spalten explizit auf visible:= false setzen, da das Grid erst zur Laufzeit erzeugt wird.


Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#4

Re: DBgrid anpassen

  Alt 8. Jan 2009, 11:08
ok, das mit der Anzeige verhindern funktioniert jetzt, indem ich die restlichen Felder mit:
self.columns[i].visible := false;


ausblende.

Leider springt die Anzeige beim Klick aufs Grid immer noch nach links.
Jetzt erscheint anstatt des nächsten DB-Feldes ein leeres Feld

was kann ich noch einstellen?


Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#5

Re: DBgrid anpassen

  Alt 8. Jan 2009, 11:11
Lösch die nicht benötigten Felder doch einfach raus (DBGrid.Columns.Delete(Index)).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#6

Re: DBgrid anpassen

  Alt 8. Jan 2009, 11:31
mh, das ist jetzt schon komisch:
mit
Delphi-Quellcode:
 for i:= 3 to 24 - 1 do
   begin
      self.columns[i].visible := false;
   end;
werden die spalten nicht angezeigt , aber oben erwähnter effekt des scrollen tritt dennoch auf.


Mit:

Delphi-Quellcode:

 for i:= 3 to 24 - 1 do
  begin
       self.Columns.Delete(i) ;
  end;
bekomme ich den fehler:
List Index(14) out of bounds


Warum denn 14 ?



Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

Re: DBgrid anpassen

  Alt 8. Jan 2009, 11:40
Löschen musst Du bei einer for-Schleife immer von hinten.
Delphi-Quellcode:
for i:= 23 downto 3 do
   begin
      self.Columns.Delete(i) ;
   end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#8

Re: DBgrid anpassen

  Alt 8. Jan 2009, 11:43
Zitat von DeddyH:
Löschen musst Du bei einer for-Schleife immer von hinten.
Delphi-Quellcode:
for i:= 23 downto 3 do
   begin
      self.Columns.Delete(i) ;
   end;
danke dir, warum denn das ?

dann bekomme ich :

List Index(23) out of bounds
Karl-Heinz
  Mit Zitat antworten Zitat
stifflersmom

Registriert seit: 8. Dez 2005
Ort: 24994 Holt
379 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: DBgrid anpassen

  Alt 8. Jan 2009, 11:47
Weil sich die Menge der zu löschenden Elemente beim Löschen reduziert.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#10

Re: DBgrid anpassen

  Alt 8. Jan 2009, 11:48
Zitat von stifflersmom:
Weil sich die Menge der zu löschenden Elemente beim Löschen reduziert.
ok, aber warum jetzt out of bei 23 ???
Karl-Heinz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:42 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