Брой кликвания на мишката
Здравейте! Има такъв въпрос: как да разберете колко пъти е натиснат левият бутон на мишката? моля, посъветвайте решение на този проблем
въпреки че не, аз лъжа безсрамно. няма нужда да броим. левият бутон на мишката се натиска веднъж.
←→Мишка ( 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]
И те казаха - проблемът не е решен. ;)