![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Alpha7 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Подскажите плз какой функцией отслеживатъ движение миши ? PS Sorry za translit Можно же и кнопкой Translit пользоваться... Сообщение отредактировано: volvo - 7.07.2005 22:58 |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Вообще-то есть событие OnMouseMove:
Procedure myForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
Вот X и Y как раз и являются координатами мыши... |
CMOS |
![]()
Сообщение
#3
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 57 Пол: Мужской Репутация: ![]() ![]() ![]() |
Попробуй функции
GetCursorPos(var lpPoint: TPoint) и SetCursorPos(var lpPoint: TPoint) |
Alpha7 |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
А как выглядит тело свмой функции ONMouseMove ??
И ещё, как реализовать функцию отрисовки шкалы, но с учетом интервала сечений, т.е. задается const от которой зависит частота нанесения засечек на шкале ? Это всё к вопросу про TrackBar :ypr: HELP !! |
volvo |
![]()
Сообщение
#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 |
![]()
Сообщение
#6
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
А в виде кода енто как ??(засечки всмысле)
|
volvo |
![]()
Сообщение
#7
|
Гость ![]() |
А ты сам хоть одну строку кода привел? Я же не телепат, чтобы думать, ЧТО тебе подойдет, а что - нет...
Form1.TrackBar1.Frequency := 3; { Потом попробуй := 1 и посмотри на разницу...}
|
Alpha7 |
![]()
Сообщение
#8
|
Новичок ![]() Группа: Пользователи Сообщений: 14 Пол: Мужской Репутация: ![]() ![]() ![]() |
Код 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. Но они просто нарисованы вне нужного алгоритма... |
volvo |
![]()
Сообщение
#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 ![]() |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 7:13 |