Начало Статии Reshix Програма: Математика
Вижте също :. Цветове в Делфи Battleship DivTimer
/ * TODO: Научете програмиране * /
В Делфи, има два основни подхода за получаване на информация за курсора на мишката: чрез набор от функции и чрез TMouse интерфейс (по възможност по-удобно). Но все пак, аз ще ви разкажа за тях. Особено, защото TMouse работи чрез същите тези функции.
Позицията на курсора
Първо, нека да се справят с координатната система. Тя е с глобален характер, като се започне в горния ляв ъгъл на екрана, оста Х е насочено към правото, Y-ос надолу. Максималната стойност на X и Y координати ще бъде съответно ширината и височината на екрана в пиксели. Те са най-лесният начин да получите от използването на Screen модул "форми":
Имайте предвид, че координатите на долния десен ъгъл са зависими от резолюцията.
Първи координати
Обръщаме се към получаване на себе си координати. За това е функция на модула GetCursorPos "Windows":
Може би, за да го използвате, за да не е много удобно - променлива, която записва необходимата информация, се прехвърля към функция като параметър. Въпреки това, аз съм съгласен, че е по-удобно да се съхранява на координатите заедно, с помощта на вид TPoint. За тези, които не знаят как да работят в TPoint, за да се получи координатите е направено така (Никога не знаеш?):
Не, все още неудобно. Нека използваме втория метод: този модул "Контрол", обявени на мишката.
С работата си е по-хубаво, не е задължително да внесено допълнителни променливи, тъй като Mouse.CursorPos вече имаме променливата от тип TPoint. Общо:
Преместете курсора
Този път, може би, в първия вариант предимство. Достатъчно е да се вземе и просто се обадете SetCursorPos. всички от един и същ модул "Windows":
При втория вариант, обаче, твърде много не е проблем. чифт числа е достатъчно, за да се превърне (х, у) в TPoint и спести:
Заслужава да се отбележи, че просто няма да работи, за да се промени само едно от координати:
Ето, това е много удобно - Преместване на курсора се случва веднага, без да се преминава през междинни точки.
Кликвайки бутоните на мишката
Нека да преминем към по-активни действия на мишката. Помислете mouse_event функция на модул "Windows":
Като цяло, това е доста сложна функция и може да преместите курсора, но аз ще ограничи себе натискане. Там, където има по-пълно описание тук.
Натискането на винаги се появява под курсора, така че тук е безполезна за предаване на координатите, е необходимо само да се премести до желаното място, преди да натиснете. Ето списък от константи, които определят това, което искаме да натиснете:
Някои от тях са определено вече имате във вашата версия на Delphi в модула "Windows", те са показани тук, в случай, че нещо липсва.
Внимание! Не забравяйте да пуснете бутона!
Общо, че имаме: за да се определи ефекта на dwFlags; DX и ди е 0; в dwData код за бутона X, че кликванията, иначе 0; dwExtraInfo също 0. Възможните стойности са бутона Х-код:
Скрол
Използване на едни и същи функции mouse_event може колелце. За да направите това, има две константи:
Заявката е: dwFlags - код на събитието превъртане; DX и ди - 0; dwData - сумата от които се превърта; dwExtraInfo - 0. dwData стойност може да бъде или множествена WHEEL_DELTA:
Какво ще направи колелце в три стъпки; и може да бъде много по-малко, например:
Какво прави превъртане на стъпка 1/5. DwData знак определя посоката на превъртане: положителен означава възходящо движение, въртене от страна на потребителя; отрицателна - надолу, въртенето на потребителя. Въпреки това, поради факта, че тази опция е посочено неподписан DWORD (0..4294967295 обхват), а след това, ако не се случи, за да използвате отрицателни стойности - Използвайте вида на DWORD:
курсора Скриване
Специално ShowCursor функция на модул "Windows", като параметър получава състояние, което трябва да поеме (True - видими, False - невидим):
Пример 1: Преместване на курсора 120 пиксела вдясно и 40 нагоре.
Пример 2: натиснете левия бутон, когато курсорът се намира точно в долния ляв ъгъл.
Между другото, кодът може да бъде малко по-съкратен чрез прехвърляне на пресоване и освобождаване наведнъж като едно действие:
Аз не знам дали това е предвидено, но аз съм на работа перфектно
Материал на тази страница се разпространява под лиценз CC BY-SA 4.0
Свързани статии