jak sprawdzic ktory klawisz myszki zostal wcisniety?

0

Przypuscmy ze mam pewien obszar na formie, ktory powinien reagowac po nacisnieciu na nim prawym badz lewym przyciskiem, jak to zrobic?(wspolzedne pomijamy bo to wiem jak zrobic)

bede wdzieczny, take care
wodzu

0

w onMouseDown danego komponentu wpisujesz cosik takiego:

case Button of
mbLeft:
begin
*tutaj wpisujesz to co ma sie wykonac po kliknieciu lewym klawiszem
*np. ShowMessage( 'Klikles lewym' );
end;
mbRight:
begin
*tutaj wpisujesz to co ma sie wykonac po kliknieciu prawym klawiszem
*np. ShowMessage( 'Klikles prawym' );
end;
end;
---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

ok...ale jak to zrobic kiedy obrazek(TImage) jest tworzony w runtime?

0

Przy tworzeniu obrazka:
image1.OnMouseDown:=NoITaProcedurkaWKtórejMaszTeButtonyMyszki; //ale nie taką długą nazwe ;)--Delphi 6
Pozdrowienia{hello} ,
Imperior

0

ehh...dzieki koledzy za pomoc ale ja i tak nie moge tego napisac tak zeby dzialalo;( {glowa}

ehhhhhhhhhhhhhhhh hmm... --take care,

Wodzu

0

Napisz dokładnie o co chodzi to może pomoge.--Delphi 6
Pozdrowienia{hello} ,
Imperior

0

Ok juz Ci pisze...Od paru dni sie z tym mecze...;(

Wiec jeszcze raz od poczatku:
mam forme, na tej formie mam przycisk, po kliknieciu przycisku na formie zostaje narysowany obrazek typu TImage( laduje go z dysku), ktory tworze w trakcie uruchomienia aplikacji.
Chcialbym aby po najechaniu na niego myszka, moglbym na niego klikanc albo prawym przyciskiem albo lewym. W zaleznosci od tego jakim przyciskiem sie posluze zostanie wykonane cos innego.
Czy mozna to zrobic w formie:
If prawy to rob to
else rob tamto?

Jestem dosc nowy w Delphi wiec bylbym Ci wdzieczny gdbys pokazal mi to na przykladowym kodzie, moze inni tez skorzystaja. Chyba to dosc popularne pytanie?

pozdrawiam i dzieki za pomoc--take care,

Wodzu

0

mam pytanie :-)
ten obrazek jest rysowany na Canvasie formy czy ladowany jest do komponentu typu TImage (np tak Image1.Picture.LoadFromFile('c:\plik.bmp');)?????
sorki ale sie juz w tym wszystkim pogubilem :-)

Czy mozna to zrobic w formie:
If prawy to rob to
else rob tamto?

mozna zrobic tak (w onMouseDown):

if Button = mbLeft then
*jakies cos np. ShowMessage('Klikles lewym')
else
*jakies cos np. ShowMessage('Klikles prawym')---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

LKS:) jest ladowany z pliku, probowalem to zrobic Twoja metoda ale pisze ze Button nie jest zadeklarowany;(

pomorzcie... {glowa} --take care,

Wodzu

0

probowalem to zrobic Twoja metoda ale pisze ze Button nie jest zadeklarowany

a w jakiej procedurze to piszesz ??? pewnie w onClick, a ja ciagle mowie ze ma byc onMouseDown !!

i jeszcze jedno zobacz sobie ten kod ponizej :-)

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
Button1: TButton;
procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure Button1Click(Sender: TObject);
private
public
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then
ShowMessage('Klikles lewym')
else
ShowMessage('Klikles prawym');
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.LoadFromFile('c:\windows\pulpit\4prog.net.bmp');
end;

end.
---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

LKS, wsio by bylo super...ale ja pisalem przeciez, ze ja ten obrazek tworze dopiero w runtime(metada Image1.Create(self) ) a wtedy nie mam przeciez inspektora obiektow i nie moge stworzyc sobie takiego zdarzenia..( a moze moge tylko po prostu o tym nie wiem? :O ) tak wiec, jesli wykarzesz jeszcze odrobine cierpliwosci... ;) i pokazesz mi jak to zrobic w runtime to bede Ci dozgonnie wdzieczny...:)

--take care,

Wodzu

0

chyba wreszcie zrozumialem o co ci chodzi :-)
popatrz na kod ponizej

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls;

type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
procedure Klik(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Klik ;
begin
if Button = mbLeft then
ShowMessage('Klikles lewym')
else
ShowMessage('Klikles prawym');
end;

procedure TForm1.FormCreate(Sender: TObject);
var
Image1: TImage;
begin
Image1 := TImage.Create(self);
with Image1 do
begin
Parent := Self;
AutoSize := True;
Left := 10;
Top := 10;
Picture.LoadFromFile('c:\windows\pulpit\4prog.net.bmp');
OnMouseDown := Klik; //najwazniejsza czesc
end;

end;

end.

o to chodzilo?---=-=[ Delphi 3, 6 ]=-=-
-=-=-==[ LKS ]==-=-=-
-=[ [email protected] ]=-

0

Co tu duzo gadac..LKS jak zwykle odwalil kupe...naprawde dobrej roboty:-)

Jeszcze raz WIELKIE DZIEKI, zaoszczedziles mi kolejnych siwych wlosow:-) {brawo} --take care,

Wodzu

1 użytkowników online, w tym zalogowanych: 0, gości: 1