![]() |
TrackBar und GetAsyncKeyState hat Probleme mit der linken Maustaste in RADstudio11
Was gestern ging muss heute nicht zwingend gehen...
Bislang verwendete ich folgenden Code um beim Loslassen der linken Maustaste die aktuelle Position der Trackbar auszuwerten. In RAD Studio 11, also Delphi und C++, geht es nicht mehr:
Delphi-Quellcode:
Dabei wurde bei gedrückter Maustaste FFFF8000 zurück gegeben und nach einem Tasten-Release eine 0.
void __fastcall TForm9::TrackBar1Change(TObject *Sender)
{ int AsyncKeyState_VK_LBUTTON = GetAsyncKeyState(VK_LBUTTON); //VK_LBUTTON $1 Linke Maustaste Memo1->Lines->Add(IntToHex(AsyncKeyState_VK_LBUTTON, 4)); // if (GetAsyncKeyState(VK_LBUTTON) == 0) if (AsyncKeyState_VK_LBUTTON ==0) { Memo1->Lines->Add(IntToHex(AsyncKeyState_VK_LBUTTON,4)); } } Nun wird aber nach dem Update von RADstudio 10 auf 11 nach einem Tasten-Release kein TrackBar1Change-Ereignis mehr ausgelöst.. ? In älteren C++ Kompilationen (RADstudio10, Delphi XE6) geht es einwandfrei.
Delphi-Quellcode:
Delphi XE6 , wobei allerdings zwei mal TrackBar1Change ausgelöst wird:
procedure TForm9.TrackBar1Change(Sender: TObject);
var i:integer; begin i:= GetAsyncKeyState(VK_LBUTTON); Memo1.Lines.Add(IntToHex(i, 4)); if (i =0) then begin Memo1.Lines.Add(IntToHex(i, 4)); end; end; (4 mal 0 wegen 2 mal Memo1.Lines.Ad) FFFF8001 Bewegen 0000 loslassen 0000 0000 0000 Also, mit Delphi XE6 und RADstudio10 geht es wie bisher einwandfrei, in RADstudio11 nicht: Die Frage ist, was hat sich verändert? Gibt es Parameter, an denen wir drehen können? Workaround? Vielen Dank für frischen Ideen :) |
gelöst:TrackBar und GetAsyncKeyState hat Probleme mit der linken Maustaste
gelöst:
On Tracking verwenden:
Delphi-Quellcode:
procedure TForm9.TrackBar1Tracking(Sender: TObject);
|
AW: TrackBar und GetAsyncKeyState hat Probleme mit der linken Maustaste in RADstudio1
Ich habe zwar keine Ahnung warum Du überhaupt "
![]() Zitat:
Delphi-Quellcode:
function IsMouseButtonPressed(AButton, ASwapButton: Integer): Boolean;
begin if GetSystemMetrics(SM_SWAPBUTTON) = 0 then Result := GetAsyncKeyState(AButton) < 0 else Result := GetAsyncKeyState(ASwapButton) < 0; end; function LeftButtonPressed: Boolean; begin Result := IsMouseButtonPressed(VK_LBUTTON, VK_RBUTTON); end; function RightButtonPressed: Boolean; begin Result := IsMouseButtonPressed(VK_RBUTTON, VK_LBUTTON); end; |
AW: TrackBar und GetAsyncKeyState hat Probleme mit der linken Maustaste in RADstudio1
Wobei hier wohl GetKeyState besser wäre, als ein GetAsyncKeyState.
GetKeyState gibt den Zustand zum Zeitpunktes des Events zurück und nicht, wenn das Programm 'nen bissl hängt, den vom aktuellen Zeitpunkt (wie GetAsyncKeyState) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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 by Thomas Breitkreuz