AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Tasen sperren mit key /Wie gebe ich entf/del frei?
Thema durchsuchen
Ansicht
Themen-Optionen

Tasen sperren mit key /Wie gebe ich entf/del frei?

Ein Thema von Hallo_Thomas · begonnen am 4. Apr 2006 · letzter Beitrag vom 19. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#1

Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 14:16
Hallo,
im Moment wende ich folgenden Befehl an:

 if not (key in ['0'..'9']) then key:=#0; Der Code funktioniert auch wunderbar, nun rätsle ich gerad rum, wie ich die entf & del Tate frei gebe?


mfg Thomas
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#2

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 14:21
VK_INSERT und VK_DELETE
Probier mal
Delphi-Quellcode:
if not (Key in [Ord('0')..Ord('9'), VK_INSERT, VK_DELETE]) then
  Key := #0;
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 14:25
Delphi-Quellcode:
procedure TForm2.NurGanzezahlen(Sender: TObject; var Key: Char);
begin
  if not (Key in [Ord('0')..Ord('9'), VK_INSERT, VK_DELETE]) then Key := #0;
end;
Fehlermeldung: inkompatiple Typen: 'Char' und 'Integer'
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 14:30
Nimm das KeyDown Ereignis, dort ist der Parameter ein DWORD. Desweiteren gibnt es in der CodeLib Code der auch die Bacxkspacetaste zum Beispiel berücksichtigt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 14:38
Irgendwie versteh ichs ni, bei key Down kommt gleiche Fehlermeldung halt nur mit Word und Char.

Welches Beispiel in der Code liberay?
  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 14:42
das Problem ist: key ist ein Char, muss aber ein integer sein. Konvertiere key einfach zuerst in einen Zahlenwert: byte(charwert) und anderstherum: char(bytewert)
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#7

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 14:44
OnKeyDown und OnKeyUp operieren mit virtual Keycodes und darauf war meine if-Abfrage angelegt. Dort ist Key vom Typ WORD.
OnKeyPress bekommt nur Tasten zu Gesicht, die einen ASCII-Code haben. Delete und Insert kommen dort erst garnicht an.

Das Ganze spiegelt den Messageverarbeitungsmechanismus von Windows wider.
Die Applikation bekommt per WM_KEYDOWN und WM_KEYUP Message virtuelle Keycodes zugeschickt.
Mittels TranslateMessage wird dann eine WM_CHAR Message innerhalb der Applikation erzeugt. Dabei werden eben nur ASCII-Zeichen beruecksichtigt.
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 15:08
@Robert Marquardt

Zitat von Robert Marquardt:
OnKeyDown und OnKeyUp operieren mit virtual Keycodes und darauf war meine if-Abfrage angelegt.
Die Abfrage schon, die abhängige Zuweisung aber nicht. Das erklärt vielleicht die kurzzeitige Verwirrung.
Der letzte Beitrag erklärt aber dann sehr schön die Vorgehensweise von Delphi.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#9

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 15:12
Ach so, dann kracht es natuerlich bei der Zuweisung von #0 das vom Typ Char ist an ein WORD
  Mit Zitat antworten Zitat
Hallo_Thomas

Registriert seit: 18. Apr 2005
Ort: Dresden
405 Beiträge
 
Delphi 2005 Professional
 
#10

Re: Tasen sperren mit key /Wie gebe ich entf/del frei?

  Alt 4. Apr 2006, 20:49
Also ich hab mal eh bissl probiert, aber irgenwie schaff ich's nich alles unter einen Hut zu bekommen.

Wenn ich sowas versuche in der Art
Delphi-Quellcode:
procedure TForm2.AbRunde137KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   if not (key = 48) then key:=0;
end;
Da schaffe ich es nicht die restlichen tasten abzufangen. (Key:=#0 funktioniert auch nich)

Hier schaffe ichs alle Anderen Tasten abzufangen.
Delphi-Quellcode:
procedure TForm2.NurGanzezahlen(Sender: TObject; var Key: Char);
begin
 if not (key in ['0'..'9']) then key:=#0;
end;
Allerdings bekomme ich hier die Entf Taste nicht freigeschalten
  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 07:36 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