Форум: "Начинающим";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];
ВнизСамописный частичный аналог TButtonGroup Найти похожие ветки
← →
Германн © (2011-05-27 01:44) [0]Подскажите как реализовать перемещение TButton мышкой в пределах TPanel так чтобы в момент отпускания кнопки знать её координаты.
Д2007. WinXP и выше.
← →
han_malign (2011-05-27 17:18) [1]
> перемещение TButton мышкой
- а на клик она должна реагировать?
Если нет - см. WM_NCHITTEST (кажется HTCAPTION - не помню уже), и TWinControl.WindowProc(если наследоваться лень)...
Ну и WM_SIZE, OnMouseUp - до кучи...
← →
Rouse_ © (2011-05-27 22:48) [2]
> чтобы в момент отпускания кнопки знать её координаты
Вопрос прочитал, но не понял. Рект в момент отпускания кнопки мыши снять нельзя?
← →
Германн © (2011-05-27 22:53) [3]
> Вопрос прочитал, но не понял. Рект в момент отпускания кнопки
> мыши снять нельзя?
Если двигать так:Perform(WM_SYSCOMMAND, SC_DRAGMOVE, 0);
,
то события отпускания не получаю. А по другому двигать не знаю как.
← →
Германн © (2011-05-28 01:22) [4]
> han_malign (27.05.11 17:18) [1]
Либо у меня руки кривые, либо что-то еще не так, но мой потомок TButton сообщение WM_NCHITTEST не получает.
← →
Германн © (2011-05-28 02:41) [5]Ну раз конкретный вопрос не нашел ответа, тогда сформулирую задачу.
На панели нужно в рантайме создать несколько кнопок. Кнопки создаются через PopupMenu или через MainMenu. Но нужно иметь возможность их перемещать. Панель с кнопками может быть расположена либо "снизу", либо сбоку окна.
Этот дизайнерский вопрос решается в конфигураторе.
Разместить панель я могу. Создать кнопки я тоже могу. Но заказчик просит дать возможность ему самому выбирать как размещать кнопки внутри панели.
← →
Германн © (2011-05-28 03:05) [6]Да. Забыл сказать. Вопрос размещения кнопок реализуется в одной программе. А используются эти кнопки в другой.
← →
Palladin © (2011-05-28 09:14) [7]а почему именно TPanel? есть предназначенные для этого TToolBar, TCoolBar которые позволяют себя конфигурировать до посинения, в том числе и перетаскивать
← →
Leonid Troyanovsky © (2011-05-28 09:18) [8]
> Германн © (28.05.11 02:41) [5]
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/fa26f6a57ab5bc05
--
Regards, LVT.
← →
Германн © (2011-05-28 21:47) [9]
> Palladin © (28.05.11 09:14) [7]
>
> а почему именно TPanel? есть предназначенные для этого TToolBar,
> TCoolBar
TToolBar, TCoolBar имеют слишком много специфичного, что мешает.
← →
Германн © (2011-05-28 21:48) [10]
> Leonid Troyanovsky © (28.05.11 09:18) [8]
>
Спасибо, попробую применить.
← →
Германн © (2011-05-29 01:54) [11]
> Leonid Troyanovsky © (28.05.11 09:18) [8]
>
То что надо! Спасибо.
← →
Германн © (2011-05-29 05:24) [12]
> Leonid Troyanovsky © (28.05.11 09:18) [8]
Леонид, а не будет с моей стороны слишком большой наглостью спросить вас - "А нет ли в вашем архиве столь же простого примера от Питера Белова (или ещё от кого-нибудь, уважаемого) на тему "Как изменить в рантайме размеры контрола мышкой"?"
← →
Германн © (2011-06-08 01:56) [13]
> Германн © (29.05.11 05:24) [12]
>
>
> > Leonid Troyanovsky © (28.05.11 09:18) [8]
>
> Леонид, а не будет с моей стороны слишком большой наглостью
> спросить вас - "А нет ли в вашем архиве столь же простого
> примера от Питера Белова (или ещё от кого-нибудь, уважаемого)
> на тему "Как изменить в рантайме размеры контрола мышкой"?
> "
Хм. Леонид. Неужели вам было так трудно сказать мне, что я дурак и неуч и вообще чукча! :(
← →
KilkennyCat © (2011-06-08 02:29) [14]
> Германн © (27.05.11 22:53) [3]
я получал событие.
к тому же, таким макаром и размеры можно изменять, что удобно.
← →
Германн © (2011-06-08 02:31) [15]
> KilkennyCat © (08.06.11 02:29) [14]
>
>
> > Германн © (27.05.11 22:53) [3]
>
> я получал событие.
> к тому же, таким макаром и размеры можно изменять, что удобно.
>
Ты об чём собственно, Костя?
← →
KilkennyCat © (2011-06-08 02:38) [16]
procedure TForm1.MouseDown(..);
begin
ReleaseCapture;
perform(WM_SysCommand, $F012, 0);
end;
я сие использовал. замена $F012 (перемещение) на $F013..$F020 (непомню точно какие) вызывает изменение размеров контрола. и положение я нормально отслеживал, чтоб за границы не утащить. вроде, ничего заумного не делал.
← →
Германн © (2011-06-08 02:57) [17]
> KilkennyCat © (08.06.11 02:38) [16]
>
> procedure TForm1.MouseDown(..);
> begin
> ReleaseCapture;
> perform(WM_SysCommand, $F012, 0);
> end;
>
> я сие использовал. замена $F012 (перемещение) на $F013..
> $F020 (непомню точно какие) вызывает изменение размеров
> контрола. и положение я нормально отслеживал, чтоб за границы
> не утащить. вроде, ничего заумного не делал.
Не хочу комментировать данное твоё высказывание.
Ты пойди и почитай по ссылке данной LVT.
Там никаких "волшебных" перформов нет!
← →
KilkennyCat © (2011-06-08 10:17) [18]Перформ не волшебный. Номер - магический.
только 2 строчки мне больше нравятся - меньше разбираться, почему что-то не так, да еще в чужом коде.
← →
Германн © (2011-06-09 02:36) [19]
> меньше разбираться, почему что-то не так, да еще в чужом
> коде.
>
Эээ. Разбираться в коде Питера Белов - уже значит "разбираться в чужом коде"?
← →
KilkennyCat © (2011-06-09 07:27) [20]
> Эээ. Разбираться в коде Питера Белов - уже значит "разбираться
> в чужом коде"?
Слепая вера до добра не доведет-с...
← →
Германн © (2011-06-10 01:48) [21]
> Слепая вера до добра не доведет-с...
Т.е. и Дельфи не стоит доверять? И перед использованием любой VCL-функции надо изучить её исходники?
← →
KilkennyCat © (2011-06-10 01:56) [22]А тебе там не встречались баги?
Но конечно, есть разумные пределы... а то так можно и транзисторы в процессоре проверять на количество и качество дырок :)
← →
Германн © (2011-06-10 02:23) [23]
> Но конечно, есть разумные пределы... а то так можно и транзисторы
> в процессоре проверять на количество и качество дырок :)
Вот и я про то же. :)
Коду от ПБ я доверяю примерно так же как и коду в VCL.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2011.10.02;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.003 c