AGB  ·  Datenschutz  ·  Impressum  







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

DBGrid Zeilen Wechsel

Ein Thema von Andidreas · begonnen am 6. Dez 2013 · letzter Beitrag vom 9. Dez 2013
Antwort Antwort
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#1

DBGrid Zeilen Wechsel

  Alt 6. Dez 2013, 11:56
Datenbank: SQLite • Version: ... • Zugriff über: UniDac
Hallo,

in meinem DBGrid bekomm ich ja über die Ereignisse OnCellClick, OnKeyUp, OnMouseWheel mit ob sich die Zeile gewechselt hat...

Wenn jetzt aber ein User auf die ganz Linke Spalte klickt (wo keine Daten drin stehn [siehe Bild]) bekomm ich es nicht mit das sich die Zeile geändert hat...
Kann man das irgendwie abfangen, geht das über das TDBGrid oder muss ich von dem hinterlegtn Datasource oder Query ein Ereignis nehmen?
Angehängte Grafiken
Dateityp: jpg LinkeSpalte.jpg (19,5 KB, 15x aufgerufen)
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
674 Beiträge
 
Delphi 12 Athens
 
#2

AW: DBGrid Zeilen Wechsel

  Alt 6. Dez 2013, 12:04
oder muss ich von dem hinterlegtn Datasource oder Query ein Ereignis nehmen?
Ja, das wäre besser. Dafür nimmt man das OnAfterScroll des Query bzw. Table.

Dann ist es auch egal, wie der Benutzer die Zeile wechselt (Mausklick, Mauswheel, Tastatur).
  Mit Zitat antworten Zitat
Benutzerbild von Andidreas
Andidreas

Registriert seit: 27. Okt 2005
1.110 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#3

AW: DBGrid Zeilen Wechsel

  Alt 6. Dez 2013, 12:09
Ok, den Klick auf den linken Rand des DBGrids bekomm ich dann auch mit?
Ein Programmierer Programmiert durchschnittlich 15 Code Zeilen pro Tag
Wir sind hier doch nicht bei SAP!!!

Aber wir habens bald
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: DBGrid Zeilen Wechsel

  Alt 6. Dez 2013, 12:33
Ok, den Klick auf den linken Rand des DBGrids bekomm ich dann auch mit?
AfterScroll bedeutet "nach dem Scrollen", Scroll bedeutet Bildlauf und rührt vom früher gebräuchlichen Drehen der Buchrolle bei antiken Büchern, die aufgerollt waren, her. Das Wechseln des Datensatzes (Scrolling, auch bekannt als Ändern des Datensatz-Zeigers) löst das Ereignis AfterScroll aus. Dabei ist es völlig egal, wie der Scrollvorgang ausgelöst wurde. Wenn der genannte Klick also zu einem Scrolling führt, dann wird AfterScroll ausgelöst.
  Mit Zitat antworten Zitat
PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#5

AW: DBGrid Zeilen Wechsel

  Alt 6. Dez 2013, 13:14
Aber Vorsicht, bei OnScroll ist es, wie Perlsau sagte "völlig egal, wie der Scrollvorgang ausgelöst wurde". Die müssen somit gar nicht vom DBGrid kommen und das war eigentlich das was Andidreas wollte....
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#6

AW: DBGrid Zeilen Wechsel

  Alt 6. Dez 2013, 15:05
1. Da beim Klick auf die linke äußere Spalte, die gewöhnlich als Indikator für den Datensatzzeiger dient, offenbar kein OnClick-Ereignis auslöst, muß man zwangsläufig mit der Datenquelle arbeiten. @Andidreas: Überprüfe doch mal, ob nicht vielleicht ein OnChange oder was Ähnliches ausgelöst wird. Wäre meiner Ansicht aber dennoch der falsche Weg.

2. Wenn irgend eine andere Komponente einen Wechsel des Datensatz-Zeigers auslöst, wird das auch im DBGrid zu sehen sein, denn das reagiert ja darauf. Es ist Sache des Entwicklers, zu verhindern, daß andere Komponenten einen Datensatzwechsel durchführen, wenn das nicht gewünscht ist.

3. Will man dafür sorgen, daß bestimmte Befehle nur dann abgearbeitet werden, wenn der Datensatzwechsel vom DBGrid ausgelöst wurde, prüft man in der Ereignisbehandlung – was ich für richtiger halte – einfach auf DBGrid.Focused.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.201 Beiträge
 
Delphi 12 Athens
 
#7

AW: DBGrid Zeilen Wechsel

  Alt 9. Dez 2013, 14:14
Ok, den Klick auf den linken Rand des DBGrids bekomm ich dann auch mit?
Ja, wenn das Grid die DataSource/DataSet mit der Selektierung synchronisiert.

Einige Grids bieten da einen Modus, welcher das nicht macht,
wo also die selektierte fokusierte Zeile nicht mit dem aktuell selektierten Record übereinstimmt. (vorallem bei Multiselect manchmal so gewollt)
Und wo im Gegenzug ein Scrollen im Dataset auch nicht den Fokus im Grid beeinflusst.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort


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:29 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