![]() |
TDBGrid am Aktualisieren hindern. OHNE TTabl.DisableControls
Hallot DP'ler!
Folgendes Problem: Ich habe zwei TTable-Objekte als Master-Detail-Verknüpfung. Auf meinem MainForm wird die Master in einem TDBGrid angezeigt. In einem anderen Fenster werden die Daten ausgewertet und dafür von BoF bis EoF mit Next durchlaufen. Nun zeigt mir das TDBGrid natürlich jede Umpositionierung des DS-Zeigers an. Also habe ich das ganze mit Master.DisableControls unterbunden. Problem dabei ist, dass die Zeigeränderung dann anscheinend auch nicht an die Slave-Table mitgeteilt wird. Kann ich mit Prozeduren des TDBGrid die Aktualisierung abschalten? Bei einigen VCL-Kompos gibts ja BeginUpdate und EndUpdate, etwas in der Art habe ich allerdings beim TDBGrid nicht gefunden. Wäre schön, wenn mir da jemand helfen könnte. Vielen Dank im Voraus, |
Re: TDBGrid am Aktualisieren hindern. OHNE TTabl.DisableCont
Hab jetzt in der OH die Eigenschaft BlockReadSize gefunden
Zitat:
|
Re: TDBGrid am Aktualisieren hindern. OHNE TTabl.DisableCont
Moin, moin,
das ist prinzipiell mit der DBGrid-Komponente ein ein hoffnungsloses Unterfangen Du könntest alledings ein Image darüberlegen und den Canvas des Grids auf den Image.#Canvas kopieren. Allerdings neige ich dir dazu zu raten für die Maintable ein StringGrid zu nehmen. Da kannst Du die Daten dann einlesen, wann Du willst. Standartmäßig würde man eine Einleseroutine im OnChange-Ereignis der DataSet-Komponente einrichten. AchSo, dann mußt Du aber auch dafür Sorgen, das Änderungen gespecihert werden. Also wieder im OnChange der DataSet Komponente vor dem erneuten einlesen. Grüße // Martin |
Re: TDBGrid am Aktualisieren hindern. OHNE TTabl.DisableCont
Hi,
die einfachste Lösung für dein Problem sollte sein, daß du die DBGrid mit einer eigenen TTable-Instanz verbindest, die auf die gleich Tabelle zeigt. Nun kannst du sowohl die Daten als auch die Cursor synchronisieren, wann immer es dir gefällt. Grüße Woki |
Re: TDBGrid am Aktualisieren hindern. OHNE TTabl.DisableCont
Danke für eure Vorschläge! Hab aber jetzt doch ne andere Lösung gewählt. Da das Anzeigen der Daten während der Auswertung unwichtig ist, rufe ich vorher gridsAus und hinterher gridsAn auf:
Delphi-Quellcode:
Funktioniert wunderbar. Das Auswertungsformular verdeckt eh das MainForm. Es ging mir also nur um den Zeitverlust, den das Anzeigen der Daten in den DBGrids verursachte.
procedure TMainForm.gridsAus;
begin gridMaster.DataSource := nil; gridDetail.DataSource := nil; end; procedure TMainForm.gridsAn; begin gridMaster.DataSource := dm.dsLabdata; gridDetail.DataSource := dm.dsPositionen; end; Das mit den zwei TTables wäre auch ne elegante Lösung (wesentlich eleganter als meine ;-) ), aber ich hab mein Datenmodul gerne möglichst übersichtlich... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14: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-2025 by Thomas Breitkreuz