![]() |
Abfragen, ob Mouse down
Hi,
ich möchte unabhängig von den Mouseevents abfragen, ob ein Mousebutton zur Zeit gedrückt wird. Kann mir jemand verraten, ob und wie das zu bewerkstelligen ist? Danke und Gruß, Barnti |
Re: Abfragen, ob Mouse down
du könntest im onmousedown des Form's eine globale Variable auf "true" setzen wenn dem so ist und im onmouse down halt False und diese fragst du ab
oder meinst du auch ausserhalb des programms? |
Re: Abfragen, ob Mouse down
Hi,
nein ich meinte schon im Programm. Dazu folgendes: ich starte einen Drag-Vorgang folgendermaßen:
Delphi-Quellcode:
ich realisiere so ein drag and drop im DBGrid...
procedure TForm_Main.DBGridColEnter(Sender: TObject);
begin // hier soll hin 'wenn rechte mousetaste gedrückt dann...' DBGrid_Master.BeginDrag(false); end; Eine globale Variable würde ich gern vermeiden... Gruß, Barnti |
Re: Abfragen, ob Mouse down
@barnti
Wie wär´s damit:
Delphi-Quellcode:
if GetAsyncKeyState(VK_RBUTTON) <> 0 then
// Key ist down |
Re: Abfragen, ob Mouse down
HI,
kannst Du mir dazu ein paar ausführlichere Zeilen schreiben. Ich habe das mal so übernommen. Leider passiert gar nichts mehr. Der Drag-Vorgang wird gar nicht mehr gestartet. Noch habe ich die Doku dazu nicht gelesen... Jetzt aber! Folgendes geändert:
Delphi-Quellcode:
Das Funktioniert nur solange ich den linken Mousebutton noch nicht betätigt habe. Danach wird auch nach einem beliebigen Tastendruck (z.B. Navigation im DBgrid)der drag-Vorgang begonnen. Ich möchte das ja aber nur, wenn die linke Mousetaste gehalten wird. Daas Ereignis AsyncKeyState müsste also wieder auf Null gesetzt werden...?!
procedure TForm_Main.DBGrid_MasterColEnter(Sender: TObject);
begin if (GetAsyncKeyState(VK_LBUTTON )<> 0) then begin DBGrid_Master.BeginDrag(false); end; end; So geht es nocht nicht richtig. Weiß jemand etwas weiter? Gruß, Barnti |
Re: Abfragen, ob Mouse down
@barnti
Also bei mir startet er, aber die Zelle kann nirgendwo abgelegt werden.
Delphi-Quellcode:
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin if GetAsyncKeyState(VK_RBUTTON) <> 0 then DBGrid1.BeginDrag(false); end; |
Re: Abfragen, ob Mouse down
Hi,
das ist ja auch nicht das Problem. Siehe mein letztes Edit. Ich möchte das der Drag-Vorgang NUR startet wenn beim OnColEnterEreignis die linke Mousetaste gedrückt wird sonst nicht. So wie es ist funktioniert es nicht, da die 'if-Bedingung' nach dem ersten Betätigen der linken mousetaste immer true liefert... Weitere Ideen? Gruß und Danke, Barnti |
Re: Abfragen, ob Mouse down
@barnti
Die Probleme tauchen bei mir nicht auf !? Wenn ich das richtig verstehe, versuchst du also eine Zelle des Grid per Drag&Drop zu verschieben ? |
Re: Abfragen, ob Mouse down
@barnti
Und wenn du anstelle von GetAsyncKeyState() GetKeyState() verwendest ?
Delphi-Quellcode:
procedure TForm1.DBGrid1ColEnter(Sender: TObject);
begin if GetKeyState(VK_LBUTTON) <> 0 then DBGrid1.BeginDrag(false); end; |
Re: Abfragen, ob Mouse down
Hi,
habe ich bereits probiert. Leider kein Erfolg... Gruß, Barnti |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:05 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