AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi DBNavigator Refresh Ereignis überschreiben und löschen
Thema durchsuchen
Ansicht
Themen-Optionen

DBNavigator Refresh Ereignis überschreiben und löschen

Ein Thema von Mahul · begonnen am 18. Dez 2006 · letzter Beitrag vom 19. Dez 2006
Antwort Antwort
Mahul

Registriert seit: 18. Okt 2006
2 Beiträge
 
#1

DBNavigator Refresh Ereignis überschreiben und löschen

  Alt 18. Dez 2006, 18:13
Guten Abend,

ich verwende einen DBNavigator und möchte den Button Refresh mit meinem Code überschreiben. Als erstes habe ich eine BeforeAction erstellt und dort meinen SourceCode geschrieben.
Dumm an der Sache ist, das die Komponente Standartmäßig bei einem Refresh wirklich auch einen DataSource.DataSet.Refresh macht .. was bei mir dazu führt, das es eine Exception auslöst.
Nun reicht mir aber auch ein Requery() von meiner AdoQuery und dazu möchte ich nun den Button der DBNavigator Schaltleiste verwenden OHNE das er anschliessend dann noch das Refresh macht.

Wie bitte kann ich nun das Ereignis zum auslösen des Refresh, das ich vorher ja schon gemacht habe mit der Requery(), aus der Liste löschen. Also das das Ereignis nicht ausgeführt wird wozu es eigentlich anfänglich gedacht war?
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: DBNavigator Refresh Ereignis überschreiben und löschen

  Alt 19. Dez 2006, 08:35
Hi,

das geht IMHO so mit dem TdbNavigator nicht.
Der ClickHandler löst BtnClick aus und dort wird unweigerlich das Refresh ausgelöst.
Jetzt kan man zwar von TDBnavigator ableiten und z.B. die virtuelle Methode BtnClick überschreiben.
Aber da gehen die Probleme schon los. In dieser Methode wird das Event onNavClick ausgelöst - ein inherited kann ich nicht verwenden - ruft ja wieder Refresh auf

Das ist dann wahrscheinlich auch der Grund, warum beim Proggen solcher Komponenten in der Regel von vorn anfangen und auf eine Ableitung von TdbNavigator verzichtet wird.

Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Mahul

Registriert seit: 18. Okt 2006
2 Beiträge
 
#3

Re: DBNavigator Refresh Ereignis überschreiben und löschen

  Alt 19. Dez 2006, 08:51
Guten Morgen Frank,
stimmt alles was Du sagst
Aber ich habe das nun so gelöst:

In der DBNavigatorBeforeAction Methode
Code:
 
if button = nbRefresh then
  begin
    versandQuery.Requery();
    abort;
  end;
Das Abort macht eine Stille Exception und das DataSource.DataSet.Refresh wird nicht aufgerufen

Einen schönen Tag, Dieter
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: DBNavigator Refresh Ereignis überschreiben und löschen

  Alt 19. Dez 2006, 08:57
Hi Dieter,

ja - abort - diese Möglichkeit vergesse ich manchmal...

Frank
Frank Reim
  Mit Zitat antworten Zitat
19. Dez 2006, 09:16
Dieses Thema wurde von "Christian Seehase" von "Windows API / MS.NET Framework API" nach "VCL / WinForms / Controls" verschoben.
Es geht um die VCL
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 22:46 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