Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.10.2014, 19:20
HTTqp HTTqp вне форума
Новичок
 
Регистрация: 16.04.2014
Сообщения: 77
Версия Delphi: Delphi 7
Репутация: -25
По умолчанию Запрет выхода курсора за форму

Кто подскажет как запретить выходить курсору за форму если форма написана на api. Знаю как реализовать в VLC, но в api не могу ее перевести или просто не понимаю как.
Как я реализовываю в VLC:
Код:
var
aRect: TRect;
begin
aRect:=BoundsRect;
ClipCursor(@myr);
end;

Кто поможет перевести в api?
Ответить с цитированием
  #2  
Старый 12.10.2014, 09:19
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
var
  ARect: TRect;
begin
  GetWindowRect(Handle, ARect);
  ClipCursor(@ARect);
end;
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 12.10.2014, 23:35
HTTqp HTTqp вне форума
Новичок
 
Регистрация: 16.04.2014
Сообщения: 77
Версия Delphi: Delphi 7
Репутация: -25
По умолчанию

Цитата:
Сообщение от NumLock
Код:
var
  ARect: TRect;
begin
  GetWindowRect(Handle, ARect);
  ClipCursor(@ARect);
end;

а как правильно применить если форма на api
Ответить с цитированием
  #4  
Старый 12.10.2014, 23:41
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Посмотреть исходники ClipCursor религия не позволяет?
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #5  
Старый 13.10.2014, 00:11
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Цитата:
Сообщение от PhoeniX
Посмотреть исходники ClipCursor религия не позволяет?
Это практически нереально для начинающего, так как это уже функция API.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 13.10.2014, 18:33
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
Радость

Цитата:
Сообщение от HTTqp
а как правильно применить если форма на api
Код:
var
  Handle: THandle;
...
Handle:=CreateWindow()
...
GetWindowRect()
ClipCursor()
__________________
Пишу программы за еду.
__________________

Последний раз редактировалось NumLock, 13.10.2014 в 18:35.
Ответить с цитированием
  #7  
Старый 13.10.2014, 20:04
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Похоже ТСу нужна инфа про отлов сообщений нахождения курсора в пределах "самопальной" формы, есть непонятки как эта форма вообще создется, без кода не видно какие описатели к ней применимы, если аффтар данное святотатство покажет, то можно кое-что и подсказать ему, ясен пень, имхо (оффтоп - тема по-тихоньку во флудильню переходит:-)
Ответить с цитированием
  #8  
Старый 13.10.2014, 21:50
HTTqp HTTqp вне форума
Новичок
 
Регистрация: 16.04.2014
Сообщения: 77
Версия Delphi: Delphi 7
Репутация: -25
По умолчанию

вот в таком форме нужно отловаить, пробывал как написано выше но увы не отловил(
Код:
 
program Project1;

 uses
   windows, 
messages;

var
   wc: TWndClass;
   hWindow: HWND;
   Msg: TMsg;

function MainWndProc(hWindow: HWND; Msg: UINT; wParam: wParam;
   lParam: lParam): LRESULT; stdcall; export;
 var
   ps: TPaintStruct;
 begin
   Result := 0;
   case Msg of
     WM_PAINT:
       begin
         BeginPaint(hWindow, ps);
         SetBkMode(ps.hdc, TRANSPARENT);
         EndPaint(hWindow, ps);
       end;
     WM_DESTROY: PostQuitMessage(0);
     else
       begin
         Result := DefWindowProc(hWindow, Msg, wParam, lParam);
         Exit;
       end;
   end;
 end;


 begin
   wc.lpszClassName := 'YourAppClass';
   wc.lpfnWndProc   := @MainWndProc;
   wc.Style         := CS_VREDRAW or CS_HREDRAW;
   wc.hInstance     := hInstance;
   wc.hIcon         := LoadIcon(0, IDI_APPLICATION);
   wc.hCursor       := LoadCursor(0, IDC_ARROW);
   wc.hbrBackground := (COLOR_WINDOW + 1);
   wc.lpszMenuName  := nil;
   wc.cbClsExtra    := 0;
   wc.cbWndExtra    := 0;
   RegisterClass(wc);
   hWindow := CreateWindowEx(WS_EX_CONTROLPARENT or WS_EX_WINDOWEDGE,
     'YourAppClass',
     'API',
     WS_VISIBLE or WS_CLIPSIBLINGS or
     WS_CLIPCHILDREN or WS_OVERLAPPEDWINDOW,
     CW_USEDEFAULT, 0,
     400, 300,
     0,
     0,
     hInstance,
     nil);

   ShowWindow(hWindow, CmdShow);
   UpDateWindow(hWindow);

   while GetMessage(Msg, 0, 0, 0) do
   begin
     TranslateMessage(Msg);
     DispatchMessage(Msg);
   end;
   Halt(Msg.wParam);
 end.
 
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025