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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2013, 12:15   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
По умолчанию acces violation при запрете движения мышки

мне нужно, чтобы мышкой нельзя было выйти за пределы формы. делаю так
Код:
procedure Tfrm1.FormActivate(Sender: TObject);
var Rect:PRect;
begin
    Rect.Left:=Left;
    Rect.Top:=Top;
    Rect.Right:=Left+Width;
    Rect.Bottom:=Top+Height;
    ClipCursor(Rect);
end;
выскакивает ошибка ошибка.jpg
gylayko вне форума Ответить с цитированием
Старый 10.05.2013, 12:27   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

PRect замени на TRect.
Возможно после этого нужно будет писать так: ClipCursor(&Rect);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.05.2013, 12:30   #3
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Код:
procedure TForm1.FormActivate(Sender: TObject);
var PRect: TRect;
begin
    PRect:= Rect(Left,Top,Left+Width,Top+Height);
    ClipCursor(@PRect);
end;
NewLamer&Programer вне форума Ответить с цитированием
Старый 10.05.2013, 13:27   #4
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Код:
PRect: TRect;
Это офигенно круто называть переменную типа TRect PRect...
Somebody вне форума Ответить с цитированием
Старый 10.05.2013, 13:42   #5
tools
Форумчанин
 
Регистрация: 07.10.2008
Сообщений: 213
По умолчанию

обозначили как указатель и не инициализировали, ясно что Access Violation выпадет...
tools вне форума Ответить с цитированием
Старый 10.05.2013, 14:09   #6
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Это офигенно круто называть переменную типа TRect PRect...
а что в этом такого? у меня все работает
NewLamer&Programer вне форума Ответить с цитированием
Старый 10.05.2013, 14:13   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а что в этом такого?
Просто имя PRect может уже быть описан в модуле windows, а тут в программе получается пересечение имен. Могут быть проблемы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.05.2013, 21:13   #8
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

При компиляции-то проблемы вряд ли будут, можно даже параметр функции типа HWND назвать HWND, например; проблемы будут при чтении и понимании.
Somebody вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Acces Violation tetriss Помощь студентам 5 10.04.2013 23:24
Возникает ошибка Acces Violation при использовании функции Copy Вадим Мошев Общие вопросы Delphi 9 07.05.2011 22:27
Непонятное Acces Violation при вызове Create у формы из Avaliable forms Человек_Борща Общие вопросы Delphi 11 26.08.2010 14:28
Исправить Acces Violation при загрузке файла Человек_Борща Общие вопросы Delphi 2 01.08.2010 14:50
Ругается(Acces Violation) при чтении DAT-файла Человек_Борща Общие вопросы Delphi 5 25.05.2010 19:42