Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

OnMouseDown


Pauk ©   (2003-07-31 13:43:00) 

как програмно задать при нажатии левой клавиши мыши, выполнить действия правой клавиши


AlexRush   (2003-07-31 18:36:00) [1]

2pasha676 (31.07.03 16:31) - извиняй, загнался... :) надож было так спутать... 8|


AlexRush   (2003-07-31 18:35:00) [2]

Pauk (31.07.03 17:48) Да нест Оит... день у меня сегодня трудный... А вопрос можно было изначально сформулировать (твою вторую ветку я обнаружил только после последнего поста сюда).


Pauk   (2003-07-31 17:48:00) [3]

спасибо тебе, о величайший из великих! С уважением лобызаю твои пятки, Сэнсэй


AlexRush   (2003-07-31 17:20:00) [4]

Pauk (31.07.03 13:43)> как програмно задать при нажатии левой клавиши мыши, выполнить действия правой клавиши

Pauk (31.07.03 17:04)> Мне popup надо подвязать к левой клавише

AlexRush © (31.07.03 14:34)> али я вопроса не понял ?? P.S. али ты его неприльно задал

So....
SwapMouseButton в данном случае не подойдет, так как поменяет кнопки "глобаьно".
А тебе отак надо:

procedure TForm1.Form1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var ptScreen:TPOINT;
begin
if Button=mbLeft
then begin
ptScreen.X:=X;
ptScreen.Y:=Y;
ptScreen:=TControl(Sender).ClientToScreen(ptScreen);
( ptScreen.X,ptScreen.Y)

Pauk (31.07.03 13:43)> как програмно задать при нажатии левой клавиши мыши, выполнить действия правой клавиши

Pauk (31.07.03 17:04)> Мне popup надо подвязать к левой клавише

AlexRush © (31.07.03 14:34)> али я вопроса не понял ?? P.S. али ты его неприльно задал

So....
SwapMouseButton в данном случае не подойдет, так как поменяет кнопки "глобаьно".
А тебе отак надо:

procedure TForm1.Form1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var ptScreen:TPOINT;
begin
if Button=mbLeft
then begin
ptScreen.X:=X;
ptScreen.Y:=Y;
ptScreen:=TControl(Sender).ClientToScreen(ptScreen);
PopupMenu1.Popup(ptScreen.X,ptScreen.Y);
end;
end;


Pauk   (2003-07-31 17:04:00) [5]

AlexRush, я и так мог определить какая нажата клавиша. Мне popup надо подвязать к левой клавише


Игорь Шевченко   (2003-07-31 16:50:00) [6]

SwapMouseButton


AlexRush   (2003-07-31 16:42:00) [7]

2pasha676 (31.07.03 16:31)
> ... по маусдауну анализировать Shift из
FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);


- ???????? С Каих пор в MSDN (я правильно понял значение "маусдауну" ?) про VCL пишут ?


AlexRush   (2003-07-31 16:35:00) [8]

для тех, кто в танке...

procedure doOnRight(Sender:TObject;Shift:TShiftState;X,Y:integer);
begin
ShowMessage("Right mouse button down on "+TComponent(Sender).Name
+#13" Position = "+IntToStr(X)+","+IntToStr(Y));
end;

procedure doOnLeft(Sender:TObject;Shift:TShiftState;X,Y:integer);
begin
ShowMessage("Left mouse button down on "+TComponent(Sender).Name
+#13" Position = "+IntToStr(X)+","+IntToStr(Y));
end;


pasha676   (2003-07-31 16:31:00) [9]

Лол!!!
Пользовательская процедура.
Самый простой способ имхо по маусдауну анализировать
Shift из
FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);

примерно так
if (ssLeft in Shift)and(Right in Shift) then ...


Pauk   (2003-07-31 15:58:00) [10]

а что такое doOnRight? Delphi упорно его не распознает


AlexRush   (2003-07-31 14:35:00) [11]

:)
т.е. mbRight: doOnRight(Sender,Shift,X,Y);8}


AlexRush   (2003-07-31 14:34:00) [12]

як дiти...

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
case Button of
mbLeft: doOnLeft(Sender,Shift,X,Y);
( Sender,Shift,X,Y)

як дiти...

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
case Button of
mbLeft: doOnLeft(Sender,Shift,X,Y);
mbRight: doOnLeft(Sender,Shift,X,Y);
end;
end;

али я вопроса не понял ??

P.S. алиты его неприльно задал ??


Yanis   (2003-07-31 14:27:00) [13]

Лови WM_LBUTTONDOWNи меняй на WM_RBUTTONDOWN.


Наверх

Титульная страница Поиск, карта сайта Написать письмо