AGB  ·  Datenschutz  ·  Impressum  







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

Keyrepeat abschalten

Ein Thema von Sharky · begonnen am 22. Feb 2008 · letzter Beitrag vom 25. Feb 2008
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#1

Keyrepeat abschalten

  Alt 22. Feb 2008, 11:37
Hai ihr,

kann man für seine Anwendung die Tastaturwiederholung abschalten?
Es soll also nicht immer der "Buchstabe gesendet" werden solange die Taste gedrückt ist.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:03
Mir fällt auf die Schnelle folgende Lösung ein:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  count := 0
end;

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

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if count = 0 then
    inc(count)
  else
    Key := #0;
end;
Bedenke aber, dass du damit das Standardverhalten umgehst und den Benutzer ggf. verärgerst!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:27
Ich glaube eher, es ist für seine Tochter. Und ich bin mir ziemlich sicher, Sharky weiß, was er tut.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:29
Zitat von Xong:
Mir fällt auf die Schnelle folgende Lösung ein:
Hai Xong,

gerade solch eine Vorgehensweise wollte ich vermeiden. Wenn ich das über "einen" Befehl für das gesamte Programm steuern kann habe ich
a) weniger Fehlerquellen
b) ist der Code besser zu warten
c) kann man das ganze einfach über Parameter ein/ausschalten

Zitat:
Bedenke aber, dass du damit das Standardverhalten umgehst und den Benutzer ggf. verärgerst!
Da sehe ich keine Bedenken.
Es handelt sich um eine so hochspezialisierte Anwendung das dafür nur eine sehr enger Anwenderkreis in Frage kommt.
Genauer gesagt ist die Anwendung ausschliesslich für gedacht.
Sollte sie, wieder erwarten, doch "rum zicken" komme ich ihm mit dem berühmten "Deine Flossen unter meinem Tisch"-Argument und die Sardine ist gegessen.

Edit: Luckie kennt mich wohl
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:33
Kann man nicht irgendwo die Tastenwiederholfrequenz einstellen? Ich meine da mal was gehört zu haben. Ich kann es natürlich auch mit der Cursor.Blick-Frequenz verwechselt haben, denn die kann man einstellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:41
Zitat von Sharky:
gerade solch eine Vorgehensweise wollte ich vermeiden. Wenn ich das über "einen" Befehl für das gesamte Programm steuern kann habe ich
a) weniger Fehlerquellen
b) ist der Code besser zu warten
c) kann man das ganze einfach über Parameter ein/ausschalten
a/b) Du hast nur eine Funktion, die das überprüft.
c) Kann man noch einbauen.
Edit: Ich weiß natürlich, was du mit "einem Befehl" meinst. Aber sooo umständlich finde ich die Lösung nun auch wieder nicht. Zumal es ziemlich einfach zu kapseln sein dürfte.

d) Eine eigene Komponente dafür möchtest du nicht entwickeln? =)


Zitat von Sharky:
Da sehe ich keine Bedenken.
Es handelt sich um eine so hochspezialisierte Anwendung das dafür nur eine sehr enger Anwenderkreis in Frage kommt.
Genauer gesagt ist die Anwendung ausschliesslich für gedacht.
Sollte sie, wieder erwarten, doch "rum zicken" komme ich ihm mit dem berühmten "Deine Flossen unter meinem Tisch"-Argument und die Sardine ist gegessen.

Edit: Luckie kennt mich wohl
Ich gebe immer solche Sachen zu bedenken. Ist ja auch nicht böse gemeint, sondern ein gut gemeinter Hinweis. Nach meinem Post war mir dann auch klar geworden, dass du das wosiewo weißt.
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:46
Hallo,

Du kannst manuell auf die Message MSDN-Library durchsuchenWM_KEYDOWN reagieren. In den Bits 0-15 von lParam steht der Repeat Count.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:52
Zitat von Xong:
a/b) Du hast nur eine Funktion, die das überprüft.
c) Kann man noch einbauen.

d) Eine eigene Komponente dafür möchtest du nicht entwickeln? =)
Hai Xong,

wenn es sich nur um Edits handeln würde wäre es kein Problem. Dann würde ich mir schnell eine Kompo dafür machen.
Aber es soll ja für "alles" gelten. Edits, Memos, Buttons usw.

Da wäre es so einfacher.

Zitat:
... Ist ja auch nicht böse gemeint, sondern ein gut gemeinter Hinweis. Nach meinem Post war mir dann auch klar geworden, dass du das wosiewo weißt.
Keine Sorge ich habe das schon richtig verstanden. Darum ja auch meine, ehrer humorvolle, Reaktion darauf
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Xong
Xong

Registriert seit: 9. Jan 2008
186 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:56
Zitat von Sharky:
[...] wenn es sich nur um Edits handeln würde wäre es kein Problem. Dann würde ich mir schnell eine Kompo dafür machen.
Aber es soll ja für "alles" gelten. Edits, Memos, Buttons usw.
Und ich war so stolz auf meinen Würgarround.

Viel Spaß noch. Ich hoffe, dir hilft xaromz´ Lösung weiter.

LG,
Xong
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Keyrepeat abschalten

  Alt 22. Feb 2008, 12:59
Zitat von Sharky:
wenn es sich nur um Edits handeln würde wäre es kein Problem. Dann würde ich mir schnell eine Kompo dafür machen.
Die Kompo heißt TApplicationEvents
Und im Ereignis OnMessage kannst du dann die WM_KeyDown wie xaromz beschrieben filtern. Dort laufen nämlich alle Messages an deine Anwendung vorbei.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 22:30 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