Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Люди, помогите советом! Есть необходимость сделать что то типа TrackBar, но только в 2х плоскостях


Yuraz ©   (2002-02-05 13:43:00) 

Т.е. регулировка по горизонтали и вертикали. Идеально для этого подходит фигура прямоугольника Shape1, например 230 на 170, и на ней также фигура Shape2, в виде ползунка, 5 на 5 пикселей. Как реализовать захват мышки Shape2, перемещение в области Shape1, чтение координат.

-----
MBo, спасибо за последний ответ про тень!


Pete   (2002-02-05 15:05:00) [1]

А еще двигай форму по десктопу! :)))

просто нет вариантов, примерно написал MBo ©


MBo   (2002-02-05 14:56:00) [2]

можно без mdown
if ssleft in shift ...


MBo   (2002-02-05 14:48:00) [3]

если следовать заложенной парадигме ;), то примерно так
в Mousedown mdown:=true; и наоборот

поищи примеры более корректного перемещения - написал от фонаря

procedure TForm1.s2MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var xx,yy:integer;
p:tpoint;
begin
if mdown then begin
p:=screentoclient(mouse.cursorpos);
xx:=p.x-s1.left;
yy:=p.y-s1.top;
if (xx>=0) and (yy>=0) and (xx<=s1.Width-s2.width)
and (yy<=s1.height-s2.height) then begin
if (xx<>oldx) or (yy<>oldy) then begin
oldy:=yy;oldx:=xx;
s2.top:=oldy+s1.top;
s2.left:=oldx+s1.left;
label1.caption:=formatfloat("0.000",xx/(s1.width-s2.width));
label2.caption:=formatfloat("0.000",yy/(s1.height-s2.height));
end;
end;
end;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо