Jump to content
Sign in to follow this  
Юрец

Delphi. Алгоритм Жука. Скорость Движения Мышки.

Recommended Posts

Здравствуйте!

у меня есть два вопроса: можно-ли (и как, если да) программно считать, изменить скорость перемещения указателя мыши?

и второй: как корректно занести в массив координаты всех точек контура закрашенной области растровой картинки?

если есть идеи, выложу исходник на дельфи. будем разбираться вместе.

Share this post


Link to post
Share on other sites

Первый вопрос:

function SetMouseSpeed(NewSpeed: Integer): Boolean;
begin
Result := SystemParametersInfo(SPI_SETMOUSESPEED, 1, Pointer(NewSpeed), SPIF_SENDCHANGE );
end;

function GetMouseSpeed: Integer;
begin
SystemParametersInfo(SPI_GETMOUSESPEED, 0, @Result, SPIF_SENDCHANGE );
end;

Выкладывай код посмотрим.

Share this post


Link to post
Share on other sites
Выкладывай код посмотрим.

вот:grid.rar

проект в разработке (что-то убрал, что-то добавил), так-что не пугайтесь.

с оконтуриванием разобрался по-своему. прошу указать на недоработки, узкие места, где и как можно оптимизировать код.

а по работе с программой так: в sprint layout экспортирую плату -> экспорт- картинка bmp. свойства картинки: цвет. размер: для платы размером 50х100мм размеры bmp в пикселях выставить 500х1000. один пиксель - 0,1мм. (при экспортировании в jpg цветов наблюдаются полутона на переходах фон-дорожка, поэтому только bmp).

после запуска программы необходимо указать файл сохраненной картинки. потом жмем кнопу sel_out, курсором жмем на картинке для выбора цвета фона . кнопа sel_in для выбора цвета дорожки (контура).

потом жмем на кнопку неп.лин. . далее курсором кликаем на дорожке (желательно ближе к левому краю,( контроль обхода контура подразумевает движение вверх от начальной точки).

после оконтуривания всех дорожек жмем кнопку G-code. программа генерирует G-code в listbox из stringgrid. далее: файл-сохранить как *gc.

отмеченный галочкой чекбокс ВЕКТОР позволяет не захламлять выходной *gc код излишним объемом строк. при снятой галке чекбокса в stringgrid записываются ВСЕ точки контура.

потом файл *gc загружаем в kcam для резки платы на станке.

а насчет скорости передвижения мышки - в Инете нашел такое:

Для того, чтобы изменить скорость перемещения мыши воспользуйтесь следующим кодом:

SystemParametersInfo(SPI_SETMOUSESPEED,0,(PVOID)5,SPIF_SENDCHANGE); // где 5 - скорость. (по умолчанию - 10).

у меня выдает ошибку при компиляции. (точно не помню, но ссылается на PVOID.).

попробуйте вставить в проект бегунок, ответственный за скорость перемещения указателя.

в form.create вставить код, считывающий скорость. а при form.close восстановить скорость.

Edited by Юрец

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Юрец посмотри мой код он рабочий.

Удали (PVOID)

И ещё такой код читать не возможно и разобратся в нём сможешь только ты так что поработай на его оформлеием пользуйся процедурами а не GOTO используй дополнительные Unit чтобы разгрузить Unitn1

Да и коментария практически нет.

Куча глобальных переменных.

Практически везде прописные буквы ты случаем C++ до этого не изучал :)

С отступами тоже проблема.

Вобщем жуть :wacko:

Share this post


Link to post
Share on other sites
Юрец посмотри мой код он рабочий.

Удали (PVOID)

завтра попробую (2 дня с машиной ковырялся).

Практически везде прописные буквы ты случаем C++ до этого не изучал :)

было дело... :rolleyes:

Share this post


Link to post
Share on other sites
                     

Приглашаем на вебинар Решения для построения ультразвуковых счетчиков жидкостей и газов на базе MSP430

Компэл совместно с Texas Instruments 23 октября 2019 приглашают на вебинар, посвященный системам-на-кристалле для построения ультразвуковых расходомеров жидкостей и газов на базе ядра MSP430. Вебинар проводит Йоханн Ципперер – эксперт по ультразвуковым технологиям, непосредственно участвовавший в создании данного решения. На вебинаре компания Texas Instruments представит однокристальное решение, позволяющее создавать точные недорогие счетчики жидкостей и газов.

Подробнее...

было дело...

Теперь понятно почему такое оформление кода.

А что тогда этот проэкт на Delphi пишешь???

Share this post


Link to post
Share on other sites
А что тогда этот проэкт на Delphi пишешь???

на Си пишу только для микроконтроллеров в оболочке CodeVisionAVR .

а насчет программы: ivan219, создайте (если не трудно) новый проект в дельфи, чтобы при form.create считывалась скорость перемещения мышки в переменную mouse_speed. а то что-то не получается. не могу разобраться.

буду ждать исходник.

Спасибо.

Share this post


Link to post
Share on other sites
А что тогда этот проэкт на Delphi пишешь???

на Си пишу только для микроконтроллеров в оболочке CodeVisionAVR .

а насчет программы: ivan219, с функцией GetMouseSpeed разобрался, а вот с SetMouseSpeed - нет.

вызываю SetMouseSpeed 5 -получаю ошибку: не достаточно параметров (not enough actual parameters). для чего признак Boolean в function SetMouseSpeed(NewSpeed: Integer): Boolean; ? и как правильно вызвать это функцию?

Спасибо.

Share this post


Link to post
Share on other sites

Boolean эта проверка на предмет устновленной скорости если True то скорость принята

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, ComCtrls;

type
 TForm1 = class(TForm)
TrackBar1: TTrackBar;
procedure FormCreate(Sender: TObject);
procedure TrackBar1Change(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
 private
{ Private declarations }
 public
{ Public declarations }
 end;

var
 Form1: TForm1;
 DefaultSpeel: Integer;

implementation

{$R *.dfm}

function SetMouseSpeed(NewSpeed: Integer): Boolean;
begin
Result := SystemParametersInfo(SPI_SETMOUSESPEED, 1, Pointer(NewSpeed), SPIF_SENDCHANGE );
end;

function GetMouseSpeed: Integer;
begin
SystemParametersInfo(SPI_GETMOUSESPEED, 0, @Result, SPIF_SENDCHANGE );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
DefaultSpeel := GetMouseSpeed;
Caption := IntToStr(DefaultSpeel);
end;

procedure TForm1.TrackBar1Change(Sender: TObject);
begin
if SetMouseSpeed(TrackBar1.Position) then Caption := IntToStr(GetMouseSpeed);
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SetMouseSpeed(DefaultSpeel);
end;

end.

Ползунок поставь в диапазоне 0 - 30, уменя рабочии скорость от 1 до 20

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Сообщения

    • Проверить цепь, по которой проходит сигнал на динамик. Если, конечно , под словами "разговорный динамик" не скрывается микрофон.
    • исправленная печатка и схема - здесь  
    • Отказал разговорный динамик. Заменил, оказалось зря, всё так-же осталось. Специалистов по близости нет. Одни предлагают выкинуть, другие перепрошить. Подскажите, что можно сделать?
    • скину свой касяк - исправленная печатка и схема - кто собирал -обратите внимание на шоттки в печатке и резистор в базе транзистора - его нужно добавить - извиняюсь) спешу вечно. все проверенно. автошим 494.lay6
    • Линейка, бесспорно, тоже нужна! Для плоскостных измерений, приносит удобство. А сверло, мечик или плашку линейкой уже не измерить. Тогда на помощь приходит штангенциркуль и таблица в помощь. Для хорошего мастера не помешает иметь и то и другое. Перелистывать страницы справочника - это тоже потеря времени. А так, глянул в таблицу и сразу получил ответ соответствия. И не надо считать деления на линейке. Это преимущество особенно ярко выражено, если величина перевода не кратная. Полезные таблицы, вообще желательно распечатать на принтере, наклеить на жёсткую картонку и магнитиком прихватить возле рабочего стола. Например: нужно реставрировать предохранитель, глянул в эту таблицу, и за считанные минуты запаял требуемый волосок калиброванного провода для данного тока. Помимо этой таблицы, желательно повесить и таблицу с ESR параметрами. Для ремонтника и не только она не будет лишней.
    • Для чего? Руки чесались? От трансформатора наводки, пробовали трансформатор вынести из коробки подальше от плат? Опередили
  • Покупай!

×
×
  • Create New...