Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MouseDown - Event bei TDBGRID Komponente bleibt aus (https://www.delphipraxis.net/2400-mousedown-event-bei-tdbgrid-komponente-bleibt-aus.html)

hacki 21. Jan 2003 17:38


MouseDown - Event bei TDBGRID Komponente bleibt aus
 
Hayo,

bei meinem verwendeten DBGRID, bleibt das Ereignis MouseDown aus :( !

Keine Ahnung, warum dieses Ereignis beim Mausklick auf das Grid nicht ausgelöst wird. Ich wollte dort abfragen, ob die rechte Taste gedrückt wird und darauf reagieren. ABER das Ereignis tritt leider nicht ein. :roll:

Code:
procedure TMainForm.MyGridMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin

 if( ssRight in Shift ) then
  UebKopierenSpeedButtonClick(Sender);

end;
Leider wird die procedure nie angesprungen.

Hat jemand eine Idee ? Was kann ich tun ?

Gruß Hacki

eddy 21. Jan 2003 20:48

nur ein Behelf:
 
Hallo hacki,

ist schon ein komisches Problem. Solange keine DataSource zugeordnet ist, funktioniert die Funktion ganz normal, und dann so, wie Du es schon beschrieben hast.

Ich kann dazu auch nichts erklären, vielleicht gibt's ja ein Trick oder eine spezielle Windows-Funktion.

Solange diese nicht gefunden ist, kannst Du MouseMove nehmen. Damit funktioniert zumindest die Auswertung der Tasten.

Delphi-Quellcode:
procedure TFKasse.DBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if( ssRight in Shift ) then begin
//    .... irgendwas
  end;
end;
mfg
eddy

hacki 22. Jan 2003 10:52

hallo eddy,

du sagtest

Zitat:

Solange keine DataSource zugeordnet ist, funktioniert die Funktion ganz normal, ...
was denn, wenn eine datasource connectiert ist ? es handelt sich schließlich um ein dbgrid, welches werte aus einer datenbank liest und darstellt.

gibt es einen trick ? wird das event irgendwo unterdrückt ?

danke und gruß
hacki

eddy 22. Jan 2003 12:15

Hallo hacki,

schon in der vorigen Nachricht steht: "....normal, und dann so, wie Du es schon beschrieben hast.", was bedeutet, daß es nicht funktioniert, sobald eine DataSource angekoppelt wird (was ja schließlich Sinn und Zweck von DBGrid ist).

Zu den Vielleichts kann ich immer noch nichts sagen, aber mit MouseMove konnte ich die Auswertung behelfsweise durchführen, auch wenn dies programmtechnisch nicht optimal ist.

Mit Sicherheit wird das Event irgendwo unterdrückt (die rechte Maustaste liefert ja im Normalfall ein PopUpMenü), aber ich habe keine Ahnung, wie man das umgehen kann.

Da findet sich vielleicht jemand, der sich besser auskennt als wir beide zusammen.

mfg
eddy

StoreMaster 23. Okt 2003 07:52

Re: MouseDown - Event bei TDBGRID Komponente bleibt aus
 
Hallo!

Bin selber gerade auf diesen bug gestossen.
Hat irgendjemand eine lösung für dieses problem gefunden oder parat?

grüsse

haentschman 20. Jan 2007 15:37

Re: MouseDown - Event bei TDBGRID Komponente bleibt aus
 
Hallo alle miteinander...

Hatte ebenfalls das gleiche Problem...
Ich arbeite noch mit D5.

Ich denke daß das in den Nachfolgerversionen behoben ist.

Ich löste das Problem einfach mit MouseUp, da es in meinem Programm nicht darauf ankommt ob die Taste gedrückt oder losgelassen wird.

Mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:19 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