Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2012, 12:02   #1
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию как узнать позицию мышки

С помощью такой вот записи можно узнать координаты курсора мышки
Код:
getcursorpos(pt);
      edit1.Text:=inttostr(pt.X);
      edit2.Text:=inttostr(pt.Y);
Но если я нахожусь в 3D приложении то это уже не работает. Как можно узнать координаты мыши. Приложение прикрепил, в нём видно, что при движении мыши (с нажатием на левую КМ) координаты не меняются
Вложения
Тип файла: rar Project1.rar (492.2 Кб, 13 просмотров)
SERG1980 вне форума Ответить с цитированием
Старый 03.12.2012, 12:17   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...в OpenGL это делается по-другому:
Код:
VAR vp: array [0..3] of GLint;

procedure Tpgl.WMMouseMove(var msg: TWMMouseMove);
var i,z: integer;
    a,b,c: extended;
    //
    mvmatrix,projmatrix: array[0..15] of gldouble;
    zval: glfloat;
begin
 if not Focused then SetFocus; //fix-

 //поиск ближайшей точки для подсветки -
 glGetIntegerv(GL_VIEWPORT, @vp);
 glgetdoublev(GL_MODELVIEW_MATRIX, @mvmatrix);
 glgetdoublev(GL_PROJECTION_MATRIX, @projmatrix);
 glreadpixels(msg.xPos, vp[3]- msg.yPos -1, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, @zval);
 gluunproject(msg.xPos, vp[3]- msg.yPos -1, zval, @mvmatrix, @projmatrix, @vp, wx,wy,wz);

//отображение в формуляре позиции мышки-
...
{ далее используем пересчитанные координаты WX, WY, WZ }

status.Caption:= format(' %.1fкм  %.0f° %.0f''',[c*dalnost/1000,ug,59.9*(ug-trunc(ug))]);
p.s.: ваше приложение не запустилось:
Цитата:
0 (I) Log subsystem started in elapsed time mode.
321 (i) Temporary rendering context created
321 (I) Getting OpenGL entry points and extension
321 (I)
321 (i) OpenGL rendering context information:
321 (i) Renderer : GDI Generic
321 (i) Vendor : Microsoft Corporation
321 (i) Version : 1.1.0
331 (i) Temporary rendering context destroyed
Вложения
Тип файла: zip ogl.zip (369.3 Кб, 16 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 03.12.2012, 12:55   #3
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение

p.s.: ваше приложение не запустилось:
Да забыл картинки и модель вложить
Вложения
Тип файла: zip pr2.zip (679.6 Кб, 14 просмотров)
SERG1980 вне форума Ответить с цитированием
Старый 03.12.2012, 15:15   #4
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

Пытаюсь ещё вот таким способом считать координаты но почему то при движении мыши выдаются одни и те же числа
Код:
procedure TForm1.WMMouseInf(var msg: TMessage);
begin
 case msg.WParam of
  WM_LBUTTONDOWN: begin

                  end;
  WM_LBUTTONUP:   begin
                  
                            end;
  WM_MOUSEMOVE:   begin
                               X2 := SMALLINT( msg.lParam and $FFFF);  
                               Y2 := SMALLINT( (msg.LParam shr 16) and $FFFF);   
                               memo1.Lines.Add('X2 = '+inttostr(X2)+'   Y2 = ' +
                               inttostr(Y2));
                  end;
 end;
 inherited;
end;
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
узнать позицию рабочей области окна Артэс Win Api 2 08.07.2012 18:26
как указать позицию картинки? Electron HTML и CSS 11 11.02.2011 16:54
Как узнать позицию разрыва страницы edikamn Microsoft Office Excel 1 10.09.2010 16:19
Как узнать позицию курсора в файле? DarkEvil Win Api 3 21.09.2009 00:10
Как в TWebBrowser узнать адрес ссылки которая находится под курсором мышки SeRhy Общие вопросы Delphi 0 10.08.2008 10:11