Bulder C++ drag'n'drop Timage po formie

0

Chcialbym zrobic mozliwosc przeciagania obrazkow (ewentualnie SpeedButtona, ale to to samo) po formie. Ze zwyklymi przyciskami mi wychodzi, a z obrazkami niestety nie. Do przeciagania przyciskow uzywam tego (na zdarzeniu MouseDown):
SendMessage(dynamic_cast<TButton*> (Sender)->Handle, WM_LBUTTONUP, 0, 0);
SendMessage(dynamic_cast<TButton*> (Sender)->Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);

Na obrazkach probowalem analogicznie:
SendMessage(dynamic_cast<TImage*> (Sender)->Picture->Bitmap->Handle, WM_LBUTTONUP, 0, 0);
SendMessage(dynamic_cast<TImage*> (Sender)->Picture->Bitmap->Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);

Niestety nie dziala. Jakas sugestia jak to zrobic na obrazkach?

1

Skoro używasz C++ Builder to dlaczego nie skorzystasz z metod z klasy TImage?

(TImage)
DragMode ustawiasz na dmAutomatic

Wykorzystujesz metody:
TImage->OnDragDrop
TForm->OnDragOver (Accept ustawiasz na true)

0
sephirot8608 napisał(a)

Wykorzystujesz metody:
TImage->OnDragDrop
TForm->OnDragOver (Accept ustawiasz na true)

TImage->OnDragDrop - nic mi nie dawal (albo zle patrzalem). Wykorzystalem wiec
TForm->OnDragDrop

Wyglada na to ze faktycznie da sie to zrobic, tylko ze teraz kursor zmienia wyglad podczas przeciagania, a obrazek WCIAZ lezy tam gdzie byl na poczatku (dopiero po puszczeniu klawisza myszki pojawia sie w nowym miejscu). Da sie zrobic zeby obrazek przesuwal sie przez caly czas za kursorem?

1

W DragOver formatki ustawiasz:
Image1->Left = X;
Image1->Top = Y;

A jeżeli chodzi o kursor to możesz go zmienić we właściwości DragCursor.

0

Wielkie dzieki. Dziala! Temat do zamkniecia :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1