Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.10.30;
Скачать: [xml.tar.bz2];

Вниз

МЫШЬ 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.004 c
15-1309505832
Andy BitOff
2011-07-01 11:37
2011.10.30
Поправка к вакансии


15-1309364654
Baks
2011-06-29 20:24
2011.10.30
CR2 Converter


11-1238343292
codemaster
2009-03-29 20:14
2011.10.30
KOL и Классы


15-1309875609
Сергей
2011-07-05 18:20
2011.10.30
Проблема установски delphi 7 на windows 7


2-1310454745
youngdev
2011-07-12 11:12
2011.10.30
insert, append





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский