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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2012, 21:35   #61
Jeraldino74
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Разъясните-ка мне лучше вот этот код:

Код:
  x0:=(Screen.Width) div 2;
  y0:=(Screen.Height) div 1;
  x1:=(Screen.Width) div 1;
  y1:=(Screen.Height) div 1;
Ну это координаты точек абсциссы. Не?

Цитата:
И еще обратите внимание: не стоит привязывать рассчет угла к кнопке на форме, так как тогда курсор будет (всегда, заметьте!) в районе этой кнопки. Лучше уж тогда к правой/средней кнопе самой мыши это привязать.
Почему я привязал к кнопке, чтобы пользователь видел своё влияние на программу. Что он задаёт началу измерения угла. Я привязал таймер к нажатию кнопки, так что теперь угол изначально хоть и будет не равно 0, но изменяется по движению мышью.
Jeraldino74 вне форума Ответить с цитированием
Старый 09.11.2012, 21:57   #62
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
Ну это координаты точек абсциссы. Не?
Не. Вот так:

Код:
  x0:=(Screen.Width) div 2;   {Центр экрана}
  y0:=(Screen.Height) div 2;

  x1:=(Screen.Width);   {Вектор от центра до правого края экрана}
  y1:=(Screen.Height) div 2;
{или}
  x1:=0;   {Вектор от центра до левого края}
  y1:=(Screen.Height) div 2;
{или}
  x1:=(Screen.Width) div 2;   {Вектор от центра до нижнего края экрана}
  y1:=Screen.Height;
{или}
  x1:=(Screen.Width) div 2;   {Вектор от верхнего края до центра}
  y1:=0;
Как то так должно быть, если за начало координат считать центр экрана.
А смысла писать div 1 все-равно никакого нет

А с кнопкой - понятно, все логично.

UPDATE Я вот тут подумал, что если у Вас начало координат посередине центра нижней линии экрана - тогда все ОК. Надо было с этого вопроса и начать
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 09.11.2012 в 22:00.
Sciv вне форума Ответить с цитированием
Старый 09.11.2012, 22:25   #63
Jeraldino74
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 45
По умолчанию

Да я div 1 влепил, так как стирать обламывало

Ещё тут подумал, как сделать ограничение, чтобы больше 150 градусов не выводилось на экран.
Код:
if ag=150 then Edit1.text:=' ' else Edit1.Text:='угол ='+FloatToStr(ag);
Не работает, так. У переменной ag тип real, но даже если я ставлю значение 150, угол после 150 начинает считать.

Вот я совсем уже))) Не понимаю, что пишу))))

Код:
if ag>150 then Edit1.text:=' ' else Edit1.Text:='угол ='+FloatToStr(ag);
Я тут вроде жестоко ошибся. И это очень печально. Программа как бы работает, считает угол до 150 градусов и изменяется только в одну сторону. Но тут оказалось, что задание нужно было реализовать так:
Цитата:
Спроектировать измерительное устройство, связанное по COM порту с ЭВМ. В целях проектирования изучить датчик вращения манипулятора типа "мышь". Так же при проектировании учесть наличие схем EPM7032STC44-10 и ADM202EAN. Составить блок-схему алгоритма программы отображения на экране компьютера измеряемой величины.
Печально всё это. Я вот сижу и думаю, чего это всё зря чтоли? %)

Последний раз редактировалось Stilet; 14.11.2012 в 21:27.
Jeraldino74 вне форума Ответить с цитированием
Старый 10.11.2012, 19:10   #64
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Да ладно, с чего бы зря? Какой-никакой, а опыт. Практика программирования, математические вычисления и вообще... Однако вопрос такой: где Вы будете брать мышь для COM-порта?

И вот еще интересно - как с этим заданием связана Дельфи?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 10.11.2012, 19:41   #65
Jeraldino74
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 45
По умолчанию

Ну судя по всему писать надо на ассемблере. А мышку с COM портом, даже не представляю где взять. Пусть будет так: "Подключайте свою мышку, всё работает" :-)

Доброго времени суток.
Стала интересно как заставить работать счётчик нажатия ЛКМ не только на форме, но и вне.
Код:
// счётчик нажатий на ЛКМ
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    if Button = mbLeft then Edit3.Text:=inttostr(strtoint(Edit3.Text)+1);
end;
К чему привязывать? Если не к FormMouseDown.

И второй вопрос, странный, но думаю разумный. Хочу, чтобы пользователь мог задать ComboBox1 (да/нет) Тройное нажатие клавиши.
Код:
For i := 1 To 10 Do
Begin
  Mouse_Event(MouseEventF_LeftDown, 0, 0, 0, 0);//нажимаем на левую кнопку
  Mouse_Event(MouseEventF_LeftUp, 0, 0, 0, 0);//отпускаем левую кнопку
End;
К какому обработчику событий это прикрутить, чтобы так же вне формы работал?
Помогите.
Вложения
Тип файла: rar ПрограммаВращениемышиv_1.rar (172.4 Кб, 6 просмотров)

Последний раз редактировалось Stilet; 14.11.2012 в 21:41.
Jeraldino74 вне форума Ответить с цитированием
Старый 13.11.2012, 20:55   #66
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Цитата:
Сообщение от Jeraldino74 Посмотреть сообщение
К чему привязывать? Если не к FormMouseDown.
через хуки(hook), winAPI
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 13.11.2012, 21:08   #67
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
через хуки(hook), winAPI
Угу. Это уже в ту область, форма ограничена, за собственными пределами она уже не рулит.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 13.11.2012, 21:34   #68
Jeraldino74
Пользователь
 
Регистрация: 16.05.2011
Сообщений: 45
По умолчанию

О... нет! Только не hook! Так боялся, что до них дойдёт дело.

Нашел вроде хорошую статью про эти самые Hook'и http://www.realcoding.net/articles/i...k-v-delfi.html

Снизу приведен пример как раз обработка Wh_mouse. Но ни черта пока не понятно. :-)

Кажись, Sciv, вы были правы на счёт того, что нужно начать читать книжку по ООП.

Интересует такой вопрос. Например как нумеруются изображения курсора?
Стандартная мышка(стрелка):= 65539

Код:
procedure TForm2.Timer1Timer(Sender: TObject);
var CI: TCursorInfo;
begin
  CI.cbSize := SizeOf(CI);
  GetCursorInfo(CI);
  Image1.Picture.Icon.Handle:= CI.hCursor
end;
Допусти я сделал так:
Код:
Label1.Caption:=IntToStr(Ci.hCursor);
Чтобы узнать какой номер стандартной мышки.
Код:
Image1.Picture.Icon.Handle:= 65539;
И ещё такой вопрос, например пользователь меняет стандартные курсоры на другие, они будут уже иметь другой номер? И как сделать:

Код:
Image1.Picture.Icon.Handle:= Стандартный режим;
Image1.Picture.Icon.Handle:= Выбор справки;
Image1.Picture.Icon.Handle:= Занят;
Image1.Picture.Icon.Handle:= ... ;

Последний раз редактировалось Stilet; 14.11.2012 в 21:42.
Jeraldino74 вне форума Ответить с цитированием
Старый 14.11.2012, 21:24   #69
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
какой номер стандартной мышки.
crDefault

Цитата:
const
crDefault = TCursor(0);
crNone = TCursor(-1);
crArrow = TCursor(-2);
crCross = TCursor(-3);
crIBeam = TCursor(-4);
crSize = TCursor(-22);
crSizeNESW = TCursor(-6);
crSizeNS = TCursor(-7);
crSizeNWSE = TCursor(-8);
crSizeWE = TCursor(-9);
crUpArrow = TCursor(-10);
crHourGlass = TCursor(-11);
crDrag = TCursor(-12);
crNoDrop = TCursor(-13);
crHSplit = TCursor(-14);
crVSplit = TCursor(-15);
crMultiDrag = TCursor(-16);
crSQLWait = TCursor(-17);
crNo = TCursor(-18);
crAppStart = TCursor(-19);
crHelp = TCursor(-20);
crHandPoint = TCursor(-21);
crSizeAll = TCursor(-22);
Это из сорцов
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
датчик случайных чисел Наталия 555 Общие вопросы C/C++ 3 31.03.2011 13:58
Датчик случайных чисел Ksy JavaScript, Ajax 0 07.02.2011 23:10
Мышка как датчик вращения loader-ua Фриланс 7 19.11.2009 00:01
Мышка как датчик вращения loader-ua Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 15.11.2009 17:22