Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi DBGrid Spalten nicht anwählbar (https://www.delphipraxis.net/190892-dbgrid-spalten-nicht-anwaehlbar.html)

beanbear6 17. Nov 2016 06:21

DBGrid Spalten nicht anwählbar
 
Hallo zusammen,
ich müsste bei einem DBGrid mit 10 Spalten Spalte 2 und 5 nicht anwählbar machen. Mit ReadOnly kann ich zwar erreichen, dass die Daten nicht änderbar sind, dennoch ist es möglich die Spalte anzuklicken. Kann man das so machen, dass man da gar nicht reinklicken kann, so dass wenn man z.B. mit Tab-Taste von Spalte 1 gleich auf Spalte 3 kommt?
Bin für jeden Tip dankbar...
Gruß Beanbear

Jasocul 17. Nov 2016 06:30

AW: DBGrid Spalten nicht anwählbar
 
Das Ereignis OnColEnter sollte dir da weiterhelfen.
Source ist nur schnell hingetippt und ungeprüft
Delphi-Quellcode:
  if (DBGrid1.Col = 2) or (DBGrid1.Col = 5) then
  begin
    DBGrid1.Col := DBGrid1.Col + 1;
  end

beanbear6 17. Nov 2016 06:35

AW: DBGrid Spalten nicht anwählbar
 
Hi,
das funktioniert nicht... :cry:

Jasocul 17. Nov 2016 06:49

AW: DBGrid Spalten nicht anwählbar
 
Zitat:

Zitat von beanbear6 (Beitrag 1353922)
Hi,
das funktioniert nicht... :cry:

Bei mir schon. Zumindest wenn ich es mit anklicken versuche oder von links nach rechts durch die Spalten gehe.
Für den Weg von rechts nach links muss du dir vielleicht noch "merken", welche Taste gedrückt wurde (z.B. über das OnKeyDown).

Ansonsten schreibe mal, was nicht funktioniert. Vielleicht nutzt du ja auch das OnCellClick des Grids und machst dadurch etwas, was die andere Steuerung verhindert.
Also bitte mehr Details.

beanbear6 17. Nov 2016 07:15

AW: DBGrid Spalten nicht anwählbar
 
Hi,
Delphi moniert: Undefinierter Bezeichner: 'Col' hm...
Gruß Reiner

haentschman 17. Nov 2016 07:24

AW: DBGrid Spalten nicht anwählbar
 
Moin...:P
Zitat:

Source ist nur schnell hingetippt und ungeprüft
...das heißt das du mitdenken mußt. 8-) Ein Blick in die Properties hätte gereicht... http://docwiki.embarcadero.com/Libra...DBGrid.Columns
Delphi-Quellcode:
if (DBGrid1.Columns = 2) or (DBGrid1.Columns = 5) then
begin
  DBGrid1.Columns := DBGrid1.Columns + 1;
end

beanbear6 17. Nov 2016 07:30

AW: DBGrid Spalten nicht anwählbar
 
Hi,
mit If DBGrid1.Columns = 2 then DBGrid1.Columns := DBGrid1.Columns + 1; krieg ich nun den Fehler: inkompatible Typen...

Jasocul 17. Nov 2016 07:37

AW: DBGrid Spalten nicht anwählbar
 
Sorry, mein Fehler.
Ich habe eine andere DBGrid-Komponente genommen.

Da ich jetzt meiner normalen Arbeit nachgehen muss, kann ich dir jetzt nur einen Anstoß geben:
Das TDBGrid hat die Eigenschaft SelectedField.
Darüber kannst du deine Steuerung vielleicht anpassen.

Die DOH sagt dazu:
Zitat:

Mit SelectedField können Sie den Fokus zu einem bestimmten Feld des Gitters verschieben
Alternativ SelectedIndex:
Zitat:

Mit SelectedIndex können Sie den Fokus zu einer Spalte im Gitter verschieben, die durch ihre Position bezeichnet wird

Uwe Raabe 17. Nov 2016 07:44

AW: DBGrid Spalten nicht anwählbar
 
Im Gegensatz zu einem normalen Grid wird bei einem datensensitiven Grid weder das Col- noch das Row-Property publiziert. In diesem Fall bietet sich SelectedIndex an, der aber gegebenenfalls schon die Indikatorspalte rausrechnet.

Edit: roter Kasten?

Aviator 17. Nov 2016 08:42

AW: DBGrid Spalten nicht anwählbar
 
VirtualTreeView :stupid:

Da kannst du sowas auf jeden Fall implementieren. Und noch vieeeeeel mehr. :cyclops:

beanbear6 23. Nov 2016 17:55

AW: DBGrid Spalten nicht anwählbar
 
Hi Aviator,
ich bin mir nicht ganz sicher, ob Du meine Frage verstanden hast. Es geht um DBGrid und nicht um Virtual Tree - i glaub die beiden haben wenig gemeinsam oder? :-)
Gruß beanbear

Aviator 23. Nov 2016 18:17

AW: DBGrid Spalten nicht anwählbar
 
Zitat:

Zitat von beanbear6 (Beitrag 1354520)
Hi Aviator,
ich bin mir nicht ganz sicher, ob Du meine Frage verstanden hast. Es geht um DBGrid und nicht um Virtual Tree - i glaub die beiden haben wenig gemeinsam oder? :-)
Gruß beanbear

Naja. Verstanden habe ich deine Frage schon. Nur habe ich nicht so ganz auf das DB in DBGrid geachtet. Aber nichts desto trotz könntest du die VirtualTreeView Komponente verwenden. Du müsstest die Daten eben nur manuell zum Tree hinzugfügen und ggf. sogar eine eigene Klassenstruktur zum Vorhalten der Daten erstellen.

Du kannst die Nodes natürlich alle auch von Hand aus der Query erstellen und dann mit den Daten arbeiten. Ist beim Hinzufügen/Editieren/Bearbeiten dann vielleicht auf Anhieb nicht so komfortabel wie das DBGrid, aber du hast weitaus mehr Möglichkeiten in anderen Richtungen. Dein aktuelles Problem wäre nämlich mit dem VirtualTreeView absolut kein Problem.


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