AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tastatur - nein / Maus - ja

Ein Thema von Traumzauberbaum · begonnen am 10. Jul 2002 · letzter Beitrag vom 26. Jun 2003
Thema geschlossen
Traumzauberbaum

Registriert seit: 10. Jul 2002
Ort: Hamburch
12 Beiträge
 
#1

Tastatur - nein / Maus - ja

  Alt 10. Jul 2002, 09:55
Ich sitz an nem kleinen Spiel, wo man Buttons abballern muss *g* allerdings reagieren die Buttons dummerweise auch auf Tastatur-Eingaben, ich will aber, dass die nur auf Mausklicks reagieren. Hat jemand nen Tip für mich?
 
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#2
  Alt 10. Jul 2002, 10:28
Hi ,

Du könntest die Eigenschaft "KeyPreview" des Formulars, auf dem sich das Ganze abspielt, auf TRUE setzen und über die "onKey...."-Events des Formulars die entscheidenden Tastencodes abfangen und unterdrücken, indem Du jeweils die "Key"-Variable (der Var-Parameter) auf 0 bzw. #0 setzt. (Das war zwar jetzt ein Banmdwurmsatz, aber ich hoffe, dass ich das Prinzip deutlich machen konnte ).

Grüße,
Daniel
Daniel R. Wolf
 
Traumzauberbaum

Registriert seit: 10. Jul 2002
Ort: Hamburch
12 Beiträge
 
#3
  Alt 10. Jul 2002, 10:34
tja... das einzige, was ich verstanden hab, war das KeyPreview auf False zu setzen *g* kann ich den Quelltext mal schicken, dass mal kurz reinschaust? wir können das ja vielleicht gemeinsam per ICQ lösen? is das möglich?
Lenny Rulez
 
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#4
  Alt 10. Jul 2002, 10:38
ICQ habe ich leider nicht, aber ich kann Dir gleich einmal gerne ein Beispiel fertig machen...

Grüße,
Daniel
Daniel R. Wolf
 
Traumzauberbaum

Registriert seit: 10. Jul 2002
Ort: Hamburch
12 Beiträge
 
#5
  Alt 10. Jul 2002, 10:41
jo das wär cool. email-adresse ist s.schubert@lecare.com. danke dir
Lenny Rulez
 
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.919 Beiträge
 
Delphi 10.4 Sydney
 
#6
  Alt 10. Jul 2002, 10:55
Ich mag das nicht so gerne an EMail-Adresse senden, da die anderen Benutzer dann ja keine Gelegenheit hätten, meine Fehler auszubügeln .
Also: Das setzen der Eigenschaft "KeyPreview" auf TRUE soll bewirken, dass dieses Fenster, solange es im Vordergrund ist, alle Tastendrücke zuerst bekommt (und nicht etwa der Button, das Memo oder sonst eine Komponente, die gerade den Fokus hat).

Nun habe ich mir den Code-Rumpf für die onKey-Ereignisse erzeugen lassen und dort jeweils die im Parameter "Key" gelieferte Taste mit dem Wert 0 überschrieben. Das bewirkt, dass alle Komponenten, die sich jetzt im Anschluss noch für Tastatur-Eingaben interssieren, lediglich die Null geliefert bekommen. (Dieser Umstand mag für die Komponenten ein wenig frustrierend sein, aber das Formular ist in diesem Fall einfach schneller...)
Code:
procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
  Key:= #0;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  Key:= 0;
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
  Key:= 0;
end;
Das Überschreiben aller drei Ereignisse führt mit Sicherheit zu dem Erfolg, dass Deine Anwendung auf gar keine Taste mehr reagiert und sich wirklich nur noch per Maus bedienen lässt. Du kannst mit diesen Ereignissen ja ein wenig herumspielen; eventuell kannst Du auch eines oder zwei weglassen und kommst trotzdem (und weniger restriktiv) zu Deinem Ziel.

Keine Hemmungen bei weiteren Fragen!

Grüße,
Daniel
Daniel R. Wolf
 
Traumzauberbaum

Registriert seit: 10. Jul 2002
Ort: Hamburch
12 Beiträge
 
#7
  Alt 10. Jul 2002, 11:03
cool danke dir *g* genau das wollt ich

...

hat jemand vielleicht noch nen schönen Fadenkreuzcursor? hab nur diese blöden Windoofs-Cursor
 
Daniel B
(Gast)

n/a Beiträge
 
#8
  Alt 10. Jul 2002, 15:58
Zitat von Traumzauberbaum:
hat jemand vielleicht noch nen schönen Fadenkreuzcursor? hab nur diese blöden Windoofs-Cursor
Hi,

klick mal dein Form1 an, im OI kannst du unter Cursor den crCross auswählen. Oder selber schreiben.

Zum Bleistift, im OnShow des Formulars: Form1.Cursor := crCross;
 
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#9
  Alt 26. Jun 2003, 22:08
Hi,

mal genau die andere Frage, wie kann ich die Maus sperren??
 
Daniel B
(Gast)

n/a Beiträge
 
#10
  Alt 26. Jun 2003, 22:10
Hallo,
Zitat von DJ-SPM:
mal genau die andere Frage, wie kann ich die Maus sperren??
Mach Bitte ein neuen Thread auf! Danke! Daher gibt es an dieser Stelle mal ein:
*** CLOSE ***


Grüsse, Daniel
 
Thema geschlossen


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz