So vermeiden Sie den Sanduhr-Mauszeiger beim Ausführen der SQL-Abfrage mit TFDQuery in Delphi XE5

8

Ich habe Grid-Kontrolle auf Formular und wenn aktuelle Datensatzänderung ich muss RTF laden in DB gespeichert. Es funktioniert im Allgemeinen gut, aber wenn ich Datensätze wechsle, kann ich Änderungen des Mauscursors zu Sanduhr und zurück zu regulär sehen:

%Vor%

Wenn ich "SelectQuery.Open;" dann schaltet der Cursor nicht um. Ich vermutete, dass es eine Option in TFDQuery (oder Verbindung) geben sollte, aber ich kann nichts finden. Irgendwelche Hilfe?

AKTUALISIEREN. Wie TLama vorgeschlagen hat, habe ich WaitCursor: TFDGUIxWaitCursor auf meinem Formular (ein Platz für App) platziert und benutze es so:

%Vor%

UPDATE2: Zwei weitere Möglichkeiten, dies zu tun.

  1. Set TFDQuery.ResourceOptions.SilentMode=True (einfachste Möglichkeit, Sanduhr-Cursor für bestimmte Abfragen zu deaktivieren, Eigenschaftenname ist schlecht, aber nach doc blockiert es keine Dialoge, nur Änderungen des Cursors).
  2. Setzen Sie die globale Variable FADGUIxSilentMode=True von der Unit FireDAC.UI.Intf (nicht die beste, aber wahrscheinlich einfachste Möglichkeit, Änderungen des Cursors global für FireDAC zu deaktivieren).
Andrei Galatyn 08.09.2014, 12:08
quelle

1 Antwort

19

Dies ist in this FAQ festgelegt:

  

Wie kann ich die SQL Sanduhr komplett ausschalten?

     

a) Um den Wartecursor für eine Anwendung vollständig zu deaktivieren, verwenden Sie    TFDGUIxWaitCursor mit Provider = 'Konsole'. Die "Konsole"   Der Provider enthält eine leere Warte-Cursor-Implementierung und die Wartezeit   Der Cursor wird von FireDAC nicht mehr angezeigt. Wenn ein Mauszeiger still ist   ändern, dann überprüfen Sie, dass nur FireDAC.ConsoleUI.Wait Einheit enthalten ist   in Ihre Anwendung und FireDAC.VCLUI.Wait und FireDAC.FMXUI.Wait   Sind nicht enthalten. Beachten Sie, dass Sie nicht in der Lage sind, die   Warten Sie den Cursor erneut.

     

b) Um den Wartecursor zu deaktivieren, aber um ihn zu aktivieren   Verwenden Sie später erneut den folgenden Code:

%Vor%      

oder

%Vor%      

c) Um den Wartecursor und die FireDAC-Dialoge zu deaktivieren, aber den   Möglichkeit, sie später erneut zu aktivieren, legen Sie den FDManager.SilentMode fest   Eigenschaft auf Wahr . Dadurch werden alle Warteschleifen und FireDAC deaktiviert   Dialoge, einschließlich:

     
  • Der Fehlerdialog
  •   
  • Async-Ausführungsdialog
  •   
  • Anmeldedialog
  •   
  • Script-Fortschrittsdialog
  •   

Einstellung ResourceOptions.SilentMode auf True deaktiviert nur warten   Cursor.

Da Sie diesen Cursor nur für die Ausführung dieser Abfrage deaktivieren möchten, verwenden Sie die Option b und umschließen Sie Ihren Code mit folgendem Code:

%Vor%     
TLama 08.09.2014, 12:14
quelle

Tags und Links