Witam.
Na wstępie tylko powiem że Turbo Delphi to jakaś porażka. Fakt, środowisko odpicowali nieźle, te podkreślanie błędów, ikonki, po prostu miodzio :-/ ale co chwilę znajduję jakieś błędy w komponentach. Chyba czas na stałe przesiąść się do lazarusa, tam przynajmniej w "Daily snaps" można spodziewać się jakiś poprawek. Ale do tematu. Od kilku godzin męczę się nad komunikatami myszy a dokładnie Drag&Drop. To w TrayIcon w OnMouseDown zawsze w Shift jest lewy przycisk, to w OnMouseMove komponentu są wszystkie oprócz lewego to teraz w GetKeyState(VK_LBUTTON) przychodzi sobie co chce. Ja już nie wytrzymuję. Chce tylko zrobić Drag&Drop buttonów w Toolbarze:
procedure TMyToolButton.MyToolButtonMouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
//jeżeli wcisniety jest lewy przycisk myszy to rozpoczynamy
// proces DND
if (ssLeft in [Shift]) then
TMyToolButton(Sender).BeginDrag(False);
end;
Nie ma w ogóle ssLeft, pomyślałem sobie, zawsze przecież zostaje WinAPI, ale w GetKeyState(VK_LBUTTON) przychodzą jakieś cuda. W helpie jest coś na temat bitów, przyznaję że to mój słaby punkt, ale obojętnie co bym nie sprawdzał: GetKeyState(VK_LBUTTON)=0; GetKeyState(VK_LBUTTON)<0; GetKeyState(VK_LBUTTON)>0 zawsze coś sie wali, nagle włącza się tryb Drag&Drop jak kursor w ogóle nie jest na buttonie, albo jak najeżdżam powoli na button to jest ok ale jak najadę szybko to włącza się drag&drop. Albo za dużo piw wypiłem, albo nie wiem, ale mam już dzisiaj serdecznie dość delphi, przynajmniej tego Turbo a wiązałem z nim nadzieje że dzięki niemu delphi znów wróci na podium. Ktoś wie o co kaman? Ostatecznie spróbuję jakoś zrobić DnD na samych zdarzeniach Toolbara, pewnie bez jakiś flag się nie obejdzie, bo toolbar nie ma żadnego property ItemIndex (zaznaczony - źrodłowy button)