![]() |
Datenbank: firebird • Version: 2.0 • Zugriff über: zeos
DBGrid "einfrieren"
Hallo alle...
ich suche jetzt schon eine Weile und finde es nicht :wall: Problem: - in ein DBGrid werden Werte eingetragen. - bei Veränderung wird eine ComboBox geleert und mit den neuen Daten gefüllt. - dazu muß ich alle Datensätze durchlaufen - mich stört einfach, daß der Balken mit dem aktuellen Datesatz mitläuft. - ich hätte gern das Grid "eingefroren" und nach der Aktualisierung der ComboBox wieder freigegeben. Ich weis, daß es da eine einfache Möglichkeit gibt, aber ich komme nicht drauf :oops: Danke für Infos in die Richtung... |
Re: DBGrid "einfrieren"
Hallo haentschmann,
meinst Du DisableControls der Datenbankkomponenten (weiß nicht ob zeos sowas hat ?) ? mfg CG |
Re: DBGrid "einfrieren"
Danke für die schnelle Reaktion.
...leider führt mich Query.DisableControls nicht zum Ziel...die Datenmenge in der Query ist dann nicht mehr die gleiche :gruebel: :hi: PS: im Prinzip ist das genau das was ich suchte, ich muß nur noch herausfinden, warum meine Datenmenge in der Durchlaufschleife immer nur einen Datensatz enthällt. |
Re: DBGrid "einfrieren"
Hallo.
Mach doch einfach eine zweite Datenquelle auf. Damit wird die erste nicht angetastet und dein DBGrid bleibt wie es ist. MfG, Ronny |
Re: DBGrid "einfrieren"
Du hast das Konzept der Datenmengen (TDataset-Abkömmlinge) vielleicht nicht richtig verstanden.
Ein TDataset enthält die geladenen Daten in Tabellenform und verwaltet einen Datensatzzeiger, sodaß beim Zugriff auf die Felder die daten jeweils einer Zeile ausgelesen werden. Mit First/Next/Prior/Last kann man den Datensatzzeiger bewegen. Mit Get/GotoBookmark kann man sich die Position des Datensatzzeigers merken und später wieder dort hinspringen. Eine Routine, die unsichtbar durch eine Datenmenge iteriert, und den Datensatzzeiger hinterher wieder dort plaziert, wo er vorher war, sieht so aus:
Delphi-Quellcode:
Damit solltest Du die gewünschte Funktionalität abbilden können.
...
Var B : TBookmark; Begin B := MyDataSet.GetBookmark; MyDataset.DisableControls; Try MyDataset.First; While Not MyDataset.Eof do Begin // Mach was mit MyDataset MyDataset.Next, End Finally MyDataset.GotoBookmark(B); MyDataset.FreeBookmark(N); MyDataset.EnableControls; End End; |
Re: DBGrid "einfrieren"
Hallo alzaimar,
Zitat:
- das mit den Bookmarks ist schon klar aber es ging mir weniger um die Positionierung auf den alten Datensatz. DisableControls / EnableControls war das was ich suchte. Ich hatte nur an der falschen Stelle nach dieser Funktionalität gesucht. Funktioniert auch so wie es sein soll. Meine Update Routine hatte ich im AfterPost der Query. Da aber auch beim Versetzen in den EditMode AfterPost aufgerufen wird :gruebel: , ergab das mit dem DisableControls ein wenig komische Effekte. Das habe ich aber nun auch im Griff. Trotzdem Danke... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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