Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Хочется сделать таскание Image мышью. Делаю Im.DragMode := dmAutomatic; При Im.DragKind = dkDrag таскать не разрешает, а при ImDragKind = dkDock становится в отдельном окошке и не понятно как его вернуть обратно на панель. Как правильно сделать? Наверное нужно что-то еще настроить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 12:21 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Если под "тасканием" ты понимаешь docking - то посмотри примеры которые с Delphi идут - там есть достаточно подробный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 12:25 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Есть у меня рисунок в TImage, который лежит на панели. Я хочу чтобы его можно было мышью таскать в пределах этой панели(ну как в дельфях можно все компоненты таскать по форме при проектировании). to funikovyuri Спасибо, буду смотреть docking (хотя по-моему это не то что мне нужно...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 13:18 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Да - скорее всего - ты о Drag&Drop - там большей частью ручками ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 13:21 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
А где бы простенький примерчик посмотреть (никогда не занимался Drag&Drop)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 13:28 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Сделал все руками (на C++Builder-e): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Не понятно почему ЭТО еще и имеет отдельное "понтовое" название Drag&Drop. Или я чего-то не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 13:56 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
автор писал:Не понятно почему ЭТО еще и имеет отдельное "понтовое" название Drag&Drop. Или я чего-то не понял? Ты чего то как раз и не понял :), Drag&Drop - это не компонент таскать и вообще не от Delphi/BCB он пришел, а от Windows. Ты же целый день это делаеш в индах, таская иконки и так далее. (хотя конечно есть различия между Дельфиским Drag&Drop и Виндовом). Тебе просто надо компоненты в ран тайме двигать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 14:37 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
автор писал:Тебе просто надо компоненты в ран тайме двигать? Да мне нужно просто мышью гонять по панели компонент Image. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 14:50 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Я уже много раз делал так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. никаких проблем. Viman ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 14:52 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
to viman Да я именно так и сделал (см. мой пример на Builder-e). Только я не понял зачем нужно image1.OnMouseMove:=nil;? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 15:01 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
У тебя строка if (Shift.Contains(ssLeft)) проверяет нажата кнопка или нет. У меня не проверяется. Когда нажимаешь кнопку, процедура mousemove будет вызываться, отпускаешь, mousemove=nil и уже не вызывается... Viman ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 15:07 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Странный способ проверки нажата ли клавиша... Ведь именно для этого и существует TShiftState. to Ray Adams Хотелось бы узнать про то как применить Drag&Drop к моей задаче. И нужно ли это делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 15:17 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Чего странного? Зачем обрабатывать какие то события если это уже не требуется... Viman ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 15:33 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
to viman В mousemove=nil вообще-то есть смысл. to Ray Adams Ах, да : автор писал:Drag&Drop - это не компонент таскать А для чего он нужен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 15:51 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Можно кстати и с Automatic сделать. Дело в том что это так Док устроен, если ты на форме/панели поместишь еще два Image и подвигаешь их ручками (ManualFloat, ManualDock), и сделаешь их невидимыми, то видимый 3-й имаг и все остальные созданные после него, не будут выстраиваться в окошко и обратно при повторном клике, а будт нормально таскаться. Правда будут другие проблемы, например при выносе объекта вообще за пределы формы, надо будет отслеживать это. Но зато при автоматик Dock не надо рисовать квадратик самому (граница переносимого объекта) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 15:59 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Это кстати в Архангельском описана методика, бывают и в дурацких книжках полезные весчи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 16:00 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
to Sclif В моем случае лучше так не делать. Таскать квадратик менее удобно (для пользователя), чем сразу рисунок. Да и за чем мне "гемморой" с невидимыми имеджами? А проверку чтобы не вылезал за панель мне и так приходится делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2003, 16:51 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
Ну гемороя то нет никакого, 6 строчек кода. Надо только учитывать что у тебя на форме два лишних DockedComponents вот и все... Квадратик конечно не здорово, но зато глюки практически исключены. Ну на вкус и цвет конечно :) Как хотите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 11:58 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
а попробуй на MouseDown: const SC_DragMove = $F012 begin ReleaseCapture; TWinControl(Sender).SetFocus; TWinControl(Sender).Perform(WM_SysCommand, SC_DragMove, 0); TWinControl(Sender).Repaint; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 13:41 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
to Nemec То что ты написал по-моему глупость. У TImage нельзя сделать SetFocus. Что-то не понял суть твоей идеи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 14:47 |
|
||
|
"Таскание" компонентов
|
|||
|---|---|---|---|
|
#18+
:) нет не глупость, а просто кусок, взятый из программы и не адаптированный к вашим нуждам. нужно зреть в корень! пробуйте так: procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); const SC_DragMove = $F012; begin ReleaseCapture; TWinControl(Sender).Perform(WM_SysCommand, SC_DragMove, 0); end; и плюс передать нажатие: procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Panel1MouseDown(Panel1, Button, Shift, X, Y); end; у меня все перемещается, дальше уж вы как-нибудь сами, ок? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2003, 16:21 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32318735&tid=2115960]: |
0ms |
get settings: |
8ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 378ms |

| 0 / 0 |
