IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Mouse..., ..
Alpha7
сообщение 7.07.2005 22:47
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Podskazhite plz kakoj funkciej otslezhivat` dvizhenie mishi ?
zaranee sens.

PS Sorry za translit

Можно же и кнопкой Translit пользоваться...

Сообщение отредактировано: volvo - 7.07.2005 22:58
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.07.2005 23:03
Сообщение #2


Гость






Вообще-то есть событие OnMouseMove:
Procedure myForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);

Вот X и Y как раз и являются координатами мыши...
 К началу страницы 
+ Ответить 
CMOS
сообщение 8.07.2005 21:46
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 57
Пол: Мужской

Репутация: -  0  +


Попробуй функции

GetCursorPos(var lpPoint: TPoint)
и
SetCursorPos(var lpPoint: TPoint)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Alpha7
сообщение 9.07.2005 14:13
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


А как выглядит тело свмой функции ONMouseMove ??
И ещё, как реализовать функцию отрисовки шкалы, но с учетом интервала сечений, т.е. задается const от которой зависит частота нанесения засечек на шкале ?
Это всё к вопросу про TrackBar :ypr:
HELP !!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.07.2005 14:25
Сообщение #5


Гость






Цитата(Alpha7 @ 9.07.05 14:13)
А как выглядит тело свмой функции ONMouseMove ??

Ну, так это тебе решать... Дельфи дает только заголовок, заполняешь-то функцию ты сам ...

Цитата(Alpha7 @ 9.07.05 14:13)
задается const от которой зависит частота нанесения засечек на шкале
Ты не про Frequency случайно говоришь?
Цитата(Delphi Help)
property Frequency: Integer;
Specifies the increment between tick marks on the track bar.
 К началу страницы 
+ Ответить 
Alpha7
сообщение 9.07.2005 15:31
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


А в виде кода енто как ??(засечки всмысле)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.07.2005 15:38
Сообщение #7


Гость






А ты сам хоть одну строку кода привел? Я же не телепат, чтобы думать, ЧТО тебе подойдет, а что - нет...
Form1.TrackBar1.Frequency := 3; { Потом попробуй := 1 и посмотри на разницу...}
 К началу страницы 
+ Ответить 
Alpha7
сообщение 9.07.2005 15:59
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 14
Пол: Мужской

Репутация: -  0  +


Код
procedure TScaleControl.PaintBox1Paint(Sender: TObject);
 begin
{Otrisovka po OX i po OY}
    PaintBox1.Canvas.Pen.Style:= psSolid;
    PaintBox1.Canvas.Pen.Color := clBlack;
if ((tag=0) and (tag<>1))then
begin
PaintBox1.Canvas.MoveTo(Width div 2, Height div 2);
PaintBox1.Canvas.LineTo(Width div 2, Height);
PaintBox1.Canvas.MoveTo(Width, Height div 2);
PaintBox1.Canvas.LineTo(-Width, Height div 2);
//*********************//
PaintBox1.Canvas.MoveTo(Width div 4, Height div 2 + Height div 4);
PaintBox1.Canvas.LineTo(Width div 4, Height div 2);
PaintBox1.Canvas.MoveTo(Width div 4 + Width div 2, Height div 2 + Height div 4);
PaintBox1.Canvas.LineTo(Width div 2 + Width div 4, Height div 2);
end
else
begin
PaintBox1.Canvas.MoveTo(Width div 2, Height div 2);
PaintBox1.Canvas.LineTo(Width, Height  div 2);
 PaintBox1.Canvas.MoveTo(Width div 2, Height);
PaintBox1.Canvas.LineTo(Width div 2, -Height);
//*********************//
PaintBox1.Canvas.MoveTo(Width div 2 + Width div 4 ,Height div 4);
PaintBox1.Canvas.LineTo(Width div 2, Height div 4);
PaintBox1.Canvas.MoveTo(Width div 4 + Width div 2, Height div 2 + Height div 4);
PaintBox1.Canvas.LineTo(Width div 2, Height div 2 + Height div 4);
 end;

end;

Это код для отрисовки Бара (я пишу компонент с "0") и "перевёртывания" с оси Х на ось У..
Мне нада в него впихнуть кусок отрисовывающий в зависивости от константы засечки на шкале.
Кабы сама ось енто [-1;1], а const дробное число. Скажем данный код рисует горизонтальную линию по середине высоты, линию из центра прямоугольника вниз. + Рисуются две побочные линии. Вот как раз они и соответствуют задаче при const=0,5.
Но они просто нарисованы вне нужного алгоритма...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 9.07.2005 16:45
Сообщение #9


Гость






Не знаю, правильно я тебя понял или нет:

var
i: integer; b: boolean;
const
f = 0.2; { это - твоя константа }
count = trunc(1/f); { это будет число маленьких засечек ... }
{ ... которые будут отрисованы по обе стороны от засечки большой }

begin
if ((tag=0) and (tag<>1)) then begin
PaintBox1.Canvas.MoveTo(Width div 2, Height div 2);
PaintBox1.Canvas.LineTo(Width div 2, Height);
PaintBox1.Canvas.MoveTo(Width, Height div 2);
PaintBox1.Canvas.LineTo(-Width, Height div 2);
//*********************//
with paintbox1.Canvas do
for b := false to true do
for i := 1 to count-1 do begin
MoveTo(width div 2-(1 - 2*byte( B ))*i*(width div (2*count)), Height div 2 + Height div 4);
LineTo(width div 2-(1 - 2*byte( B ))*i*(width div (2*count)), Height div 2);
end;
end
else ...


Кстати, я не совсем понял условие
if ((tag=0) and (tag<>1)) then begin

если Tag = 0, он в любом случае <> 1 unsure.gif
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.06.2025 21:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"