Брой кликвания на мишката

Здравейте! Има такъв въпрос: как да разберете колко пъти е натиснат левият бутон на мишката? моля, посъветвайте решение на този проблем

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

Мишка ( 20.06.2009 15:56 ) [3]

Просто трябва да направите едно нещо с първото натискане, второто с второто и третото с третото, но след три натискания същото действие се извършва за всички натискания

Можете ли да преброите едно кликване?

мишка ( 20.06.2009 16:02 ) [5]

добре, правя събитието OnClick, например на снимката, само за да извършвам действия при щракване, но започвам да изчислявам нещо, което да забавя

мишка ( 20.06.2009 16:04 ) [6]

процедура TForm1.Image1Click(Подател: TObject); ето каква е процедурата

Добре, да кажем, че са щракнали веднъж, след 5 секунди са щракнали втори път, след 7 секунди трети път. колко клика е това?

Мишка ( 20.06.2009 16:12 ) [8]

Е, изглежда, че прави едно и също нещо всеки път. Че е напълно объркан

B ( 20.06.2009 16:14 ) [9]

Мишка ( 20.06.2009 16:14 ) [10]

как тогава да извършвате различни действия за всяко кликване

Мишка ( 20.06.2009 16:16 ) [11]

> Е, изглежда, че всеки път получаваш едно и също нещоНе питам компютъра, питам теб, как твоят мисловен процес отчита колко пъти е бил натиснат левият бутон на мишката?

Мишка ( 20.06.2009 16:17 ) [13]

може да направи променлива, която ще се увеличава с всяко щракване

Мишка ( 20.06.2009 16:18 ) [14]

Мисленето мисли 3)))

хм три.хм интересно Страхувам се, че проблемът няма решение.

Мишка ( 20.06.2009 16:30 ) [16]

това е въпросът, че някак си не мисля правилно за кампанията. Можете поне да посъветвате как е възможно да правите различни действия за всяко кликване

Ще приема, че са необходими две проверки или/или. Или пребройте времето между кликванията, или проверете дали мишката се е преместила след следващото кликване. Или ги комбинирайте.

), така че ако ви интересува интервалът между щракванията, тогава трябва да стоите близо до потребителя и да броите неговите щраквания, докато: или той, или компютърът, или мишката, или мониторът престане да съществува, или се случи нещо друго, което няма да позволи по-нататъшни щраквания. след това ще изчислите точно колко кликвания са направени.

Мишка ( 20.06.2009 16:41 ) [19]

Интервалите просто не са необходими. И ако направите глобална променлива, която ще се увеличава всеки път, когато щракнете върху снимката и след това да я използвате в бъдеще?

В операта например комбинирано. Двойният клик избира думата, следващият единичен клик, ако мишката не е била преместена и не е минало много време, избира изречението и следващия абзац.

> Интервалите просто не са необходими.тогава:> застанете до потребителя и пребройте кликванията му, докато: > или той, или компютърът, или мишката, или мониторът не спира > неговото съществуване или нещо друго, което няма да позволи по-нататъшно > правенето на кликове няма да се случи. тогава ще преброите точно > колко кликвания са направени.

Мишка ( 20.06.2009 16:47 ) [22]

Ако всъщност тогава трябва да запиша координатите на показалеца към първата двойка променливи при първото щракване, след това при второто щракване към втората двойка и също 3-тата, и всички други координати след3, напишете в 4 чифт. Разбирам как да го направя, всички условия

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

> Мишка (20.06.09 16:47) [22]и нямате друга начална точка освен началото на програмата. така че забрави.

Мишка ( 20.06.2009 17:06 ) [25]

А можете ли да ми кажете как се изпълнява условието, ако сте цъкнали върху снимката и след това сте я увеличили. Глупаво за експерименти

B ( 20.06.2009 17:15 ) [26]

> Интервалите просто не са необходими.

Оказва се, че ако задържите левия бутон и след това го пуснете, това е 1 щракване? Тогава нещо като това:

Var ClickCount: DWord;

procedure TForm1.Image1Click(Sender: TObject); begin inc(ClickCount); Надпис:= IntToStr(ClickCount); Case ClickCount от 1: . ; 2: . ; 3: . ; . край; Край;

> B (06/20/09 17:15) [26]да, 1 ще работи на 1, 2 ще работи на второто, 3 ще работи на третото) може би няма да посъветвате глупости?

B ( 20.06.2009 17:32 ) [28]

> може би няма да съветвате глупости?

Какво не е наред? Въпросът е "как да разбера колко пъти е натиснат левият бутон на мишката?"

B ( 20.06.2009 17:52 ) [30]

> Мишка (06/20/09 03:56 PM) [3] > Просто трябва да направите едно нещо при първото щракване, а второто при второто, > с третото, третото, но след три щраквания, > същото действие за всички кликвания

Това е в моя код, нали? Има случай за броя на кликванията. Трябва да добавите още към случая, това е всичко.

> B (06/20/09 17:52) [30]А, да, прочетох грешно =)

Мишка (20.06.2009 19:56 ) [32]

Опитах нещо подобно: procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If Button=mbLeft then Begin inc(ClickCount); Надпис:= IntToStr(ClickCount); Case ClickCount от 1: x0:=X; y0:=Y; 2: x1:=X y1:=Y; 3:x2:=X y2:=Y; друго x3:=X; y3:=Y; край; край; край; но Делфи ругае: Очаква се постоянно изразяване Знаейки, че съм нуб във всичко това, така че не ругайте прекалено много

Balepa ( 20.06.2009 20:21 ) [33]

Мишка ( 20.06.2009 20:22 ) [34]

навакса с всичко начало c край не достави

B ( 20.06.2009 20:31 ) [35]

Използвайте масив от 3 TPoints.

B ( 20.06.2009 20:44 ) [36]

Мишка ( 20.06.2009 21:13 ) [37]

Благодаря ви, изглежда всичко работи правилно

B ( 20.06.2009 21:19 ) [38]

И те казаха - проблемът не е решен. ;)