Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.10.30;
Скачать: CL | DM;

Вниз

МЫШЬ drag-drop в аналоге RAdmin   Найти похожие ветки 

 
Pcrepair ©   (2011-07-06 21:30) [0]

Добрый день!
потихоньку идет разработка аналога РАдмин, в рамках одного проекта в среде D2010
на текущий день есть код переноса отжатия кнопок мыши с клиента на сервер в компоненте ИМЕДЖ1, в котором отображается скрин экрана сервера, все работает

КЛИЕНТ

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
 if Button=mbLeft then
 begin
  IdTCPClient1.Host:=HOST.Text;
  IdTCPClient1.Port:=StrToInt(PortNumber.Text);
  IdTCPClient1.Connect;
  IdTCPClient1.IOHandler.WriteLn("mouse_left ");
  IdTCPClient1.Disconnect;
 end;
if Button=mbRight then
begin
  IdTCPClient1.Host:=HOST.Text;
  IdTCPClient1.Port:=StrToInt(PortNumber.Text);
  IdTCPClient1.Connect;
  IdTCPClient1.IOHandler.WriteLn("mouse_right ");
  IdTCPClient1.Disconnect;
end;
end;


СЕРВЕР

procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);
var
 z: string;
 X,Y:integer;
 K:TPoint;

  if SameText(Copy(z, 1, 11), "mouse_move ") then
  begin
   z := AContext.Connection.IOHandler.ReadLn;
   if SameText(Copy(z, 1, 8), "mouse_x ") then
   X:=StrToInt(Copy(z,9,4));

   z := AContext.Connection.IOHandler.ReadLn;
   if SameText(Copy(z, 1, 8), "mouse_y ") then
   Y:=StrToInt(Copy(z,9,4));

   Log("Перемещение мыши");
   SetCursorPos(X,Y);
 end;

 if SameText(Copy(z, 1, 11), "mouse_left ") then
  begin
   GetCursorPos(K);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN,K.X,K.Y,0,0);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP,K.X,K.Y,0,0);
   Log("Нажатие левой кнопки мыши");
  end;

  if SameText(Copy(z, 1, 12), "mouse_right ") then
  begin
   GetCursorPos(K);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTDOWN,K.X,K.Y,0,0);
   mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_RIGHTUP,K.X,K.Y,0,0);
   Log("Нажатие правой кнопки мыши");
  end;

 AContext.Connection.Disconnect;
end;
end;


ВОПРОСЫ:
1. можно ли реализовать функцию перетаскивания объектов, как приблизительно код может выглядеть?
2. можно ли реализовать прокрутку с использованием колесика мыши (мышь - два баттона и колесо, стандартная), в событиях компонента ИМЕДЖ1 нет обработки колеса
3. в принципе, нужно ли делать обработку событий типа клик, двойной клик и что там может быть еще связянное с мышью, чтобы приблизиться к функционалу MSRDP?


 
Andy BitOff ©   (2011-07-06 22:12) [1]

Аналог РАдмина =D


 
DVM ©   (2011-07-06 22:15) [2]


> Pcrepair ©   (06.07.11 21:30) 


> 1. можно ли реализовать функцию перетаскивания объектов,
>  как приблизительно код может выглядеть?

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


> 2. можно ли реализовать прокрутку с использованием колесика
> мыши (мышь - два баттона и колесо, стандартная), в событиях
> компонента ИМЕДЖ1 нет обработки колеса

Можно, но имхо на кой черт вам сдался этот TImage не по назначению использщуете компонент, он для отображения статичных картинок предназначен, но не для рисования и анимации.


> 3. в принципе, нужно ли делать обработку событий типа клик,
>  двойной клик и что там может быть еще связянное с мышью,
>  чтобы приблизиться к функционалу MSRDP?

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


 
Palladin ©   (2011-07-07 10:46) [3]

Да это не просто аналог, это убийца RAdmin"а !


 
QAZ   (2011-07-07 11:50) [4]

зачем делать то, что уже есть в самой винде


 
Pcrepair ©   (2011-07-07 15:51) [5]

DVM

> Можно, но имхо на кой черт вам сдался этот TImage не по
> назначению использщуете компонент, он для отображения статичных
> картинок предназначен, но не для рисования и анимации.

а на чем еще отображать файл.бмп - скрин экрана сервера?
что конкретно значит

> достаточно перенаправлять клики мыши и перемещения мыши
> - остальное забота ос

в событиях компонента есть OnStartDrag и OnDragOver и OnDragDrop и еще OnEngDrag. неясно только как из применять


 
Dennis I. Komarov ©   (2011-07-07 16:10) [6]


> Pcrepair ©   (07.07.11 15:51) [5]

Поиск в "Сети", там много таких Кулибиных...


 
DVM ©   (2011-07-07 16:49) [7]


> Pcrepair ©   (07.07.11 15:51) [5]


> а на чем еще отображать файл.бмп - скрин экрана сервера?

Да на чем угодно, TPaintBox на худой конец, а лучше сделать свое что-то (с блекджеком и обработкой колеса мыши).


> в событиях компонента есть OnStartDrag и OnDragOver и OnDragDrop
> и еще OnEngDrag. неясно только как из применять

Это события какого компонента? TImage что ли? Причем тут эти события? Ты что хочешь перетаскивать откуда и куда? Если ты хочешь перетаскивать что-либо на удаленной машине, то туда ничего кроме перемещений мыши и кликов отправлять не надо.


 
Pcrepair ©   (2011-07-07 19:11) [8]

то есть эти события компонента Тимедж - OnStartDrag и OnDragOver и OnDragDrop к мыши отношения не имеют? в букваре по этому поводу ничего не сказано
файл скрина экрана сервера в формате БМП необходим для последующей обработки - OCR


 
DVM ©   (2011-07-07 19:20) [9]


> Pcrepair ©   (07.07.11 19:11) [8]


> то есть эти события компонента Тимедж - OnStartDrag и OnDragOver
> и OnDragDrop к мыши отношения не имеют?

они к твоей задаче отношения не имеют


 
Palladin ©   (2011-07-07 23:22) [10]


>  букваре по этому поводу ничего не сказано

это в каком таком букваре по написанию убийц роадминов это должно быть сказано?


> файл скрина экрана сервера в формате БМП необходим для последующей
> обработки - OCR

а за накой хрен этот скрин OCRом обрабатывать?

а сколько ты зарплату у работодателей просишь?


 
Pcrepair ©   (2011-07-08 08:38) [11]

по найму не работаю


 
DiamondShark ©   (2011-07-08 20:01) [12]

РАдмин риальне сосёт.

 IdTCPClient1.Connect;
 IdTCPClient1.IOHandler.WriteLn("mouse_left ");
 IdTCPClient1.Disconnect;

Тестите, поди, на гигабитной сетке?

Работа с сетью через анус.
Об оконных сообщениях понятия ноль.
А всё туда же: аналог РАдмина, функциАнал MSRDP. OCR ещё.


> Pcrepair ©   (08.07.11 08:38) [11]
> по найму не работаю

Предприниматель, значит.
Иди пивом торгуй.


 
QAZ   (2011-07-08 22:53) [13]


> Можно, но имхо на кой черт вам сдался этот TImage не по
> назначению использщуете компонент, он для отображения статичных
> картинок предназначен, но не для рисования и анимации.

между прочим движок сризиса тоже через TImage выводит, такчто не обижай парня



Страницы: 1 вся ветка

Текущий архив: 2011.10.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
2-1310225359
D_2010
2011-07-09 19:29
2011.10.30
Есть что-нибудь альтернативное DriveComboBox, DirectoryListBox?


6-1245087660
ther
2009-06-15 21:41
2011.10.30
нет коннекта через проксик


2-1310449758
bestolkov
2011-07-12 09:49
2011.10.30
Запись в файл данных динамического массива


15-1309781468
Kerk
2011-07-04 16:11
2011.10.30
База данных по документам министерства обороны за 1941-1945


2-1309973446
Pcrepair
2011-07-06 21:30
2011.10.30
МЫШЬ drag-drop в аналоге RAdmin