Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Ascicode für "Entfernen" (https://www.delphipraxis.net/130561-ascicode-fuer-entfernen.html)

Samufi 10. Mär 2009 17:06


Ascicode für "Entfernen"
 
Hallo,
in meinem Programm möchte ich, dass beim Drücken der "Entfernen"-Taste eine Prozedur aufgerufen wird, wenn gerade eine bestimmte Listbox aktiviert ist. Ich habe also in die OnKeyPress-Prozedur der besagten ListBox geschrieben:
Delphi-Quellcode:
if Key=#? then ZeileLoeschenClick(Sender);
Natürlich habe ich an Stelle des Fragezeichens eine andere Zahl geschrieben, mit anderen Tasten (z.B. 13 für "Enter") funktioniert das ganz wunderbar, aber ich finde nicht den Code für "Entfernen". Um mir den herauszusuchen habe ich einfach probiert. Ich habe ein zweites Programm geschrieben, das mit 129 if-Klauseln alle Möglichkeiten durchgeht.
Delphi-Quellcode:
if Key=? then Ausgabe.Text:='?';
(Natürlich habe ich auch hier das Fragezeichen ersetzt)
Bei vielen Tasten funktioniert das auch Wunderbar, bloß für "Entfernen" scheint es keinen zu geben. Da nun die Frage an euch: Gibt es überhaupt eine Möglichkeit für "On-Entfernen"? Und wenn nicht, gibt es eine Möglichkeit, eine Prozedur mit einer Tastenkombination aufzurufen? Ich bin Dankbar für jeden Tipp!
Samufi

TurboMartin 10. Mär 2009 17:11

Re: Ascicode für "Entfernen"
 
Zitat:

Zitat von Samufi
Hallo,
in meinem Programm möchte ich, dass beim Drücken der "Entfernen"-Taste eine Prozedur aufgerufen wird, wenn gerade eine bestimmte Listbox aktiviert ist. Ich habe also in die OnKeyPress-Prozedur der besagten ListBox geschrieben:
Delphi-Quellcode:
if Key=#? then ZeileLoeschenClick(Sender);
Natürlich habe ich an Stelle des Fragezeichens eine andere Zahl geschrieben, mit anderen Tasten (z.B. 13 für "Enter") funktioniert das ganz wunderbar, aber ich finde nicht den Code für "Entfernen". Um mir den herauszusuchen habe ich einfach probiert. Ich habe ein zweites Programm geschrieben, das mit 129 if-Klauseln alle Möglichkeiten durchgeht.

:mrgreen:
Zitat:

Zitat von Samufi
Delphi-Quellcode:
if Key=? then Ausgabe.Text:='?';
(Natürlich habe ich auch hier das Fragezeichen ersetzt)
Bei vielen Tasten funktioniert das auch Wunderbar, bloß für "Entfernen" scheint es keinen zu geben. Da nun die Frage an euch: Gibt es überhaupt eine Möglichkeit für "On-Entfernen"? Und wenn nicht, gibt es eine Möglichkeit, eine Prozedur mit einer Tastenkombination aufzurufen? Ich bin Dankbar für jeden Tipp!
Samufi

Probier es doch mal VK_DEL oder so ähnlich. Hab halt hier kein Delphi um es zu testen.
Aber ich hatte hier in der DP auch mal von irgendjemanden ein Programm gesehen, welches sogar die Win-Taste rausfinden konnte, finde es grade aber nicht.

dfried 10. Mär 2009 17:14

Re: Ascicode für "Entfernen"
 
#127 ist vermutlich das was du suchst.

DeddyH 10. Mär 2009 17:15

Re: Ascicode für "Entfernen"
 
Könnte man sich ja mal ausgeben lassen ;)

jaenicke 10. Mär 2009 17:16

Re: Ascicode für "Entfernen"
 
Setz doch einfach einen Haltepunkt auf die Zeile und probiere es aus. ;-)

Noedel 10. Mär 2009 17:18

Re: Ascicode für "Entfernen"
 
Zitat:

Zitat von Samufi
Hallo,
in meinem Programm möchte ich, dass beim Drücken der "Entfernen"-Taste eine Prozedur aufgerufen wird, wenn gerade eine bestimmte Listbox aktiviert ist. Ich habe also in die OnKeyPress-Prozedur der besagten ListBox geschrieben:
Delphi-Quellcode:
if Key=#? then ZeileLoeschenClick(Sender);
Natürlich habe ich an Stelle des Fragezeichens eine andere Zahl geschrieben, mit anderen Tasten (z.B. 13 für "Enter") funktioniert das ganz wunderbar, aber ich finde nicht den Code für "Entfernen". Um mir den herauszusuchen habe ich einfach probiert. Ich habe ein zweites Programm geschrieben, das mit 129 if-Klauseln alle Möglichkeiten durchgeht.
Delphi-Quellcode:
if Key=? then Ausgabe.Text:='?';
(Natürlich habe ich auch hier das Fragezeichen ersetzt)
Bei vielen Tasten funktioniert das auch Wunderbar, bloß für "Entfernen" scheint es keinen zu geben. Da nun die Frage an euch: Gibt es überhaupt eine Möglichkeit für "On-Entfernen"? Und wenn nicht, gibt es eine Möglichkeit, eine Prozedur mit einer Tastenkombination aufzurufen? Ich bin Dankbar für jeden Tipp!
Samufi



Was hältst du denn davon, einfach mal die Ascii nummmer ausgeben zu lassen wenn du eine Taste probierst.... ?!

BAMatze 10. Mär 2009 17:21

Re: Ascicode für "Entfernen"
 
Ein ähnliches Problem hatte ich auch mal, als ich ein Edit-Feld nur für Zahlen zulassen wollte und die üblichen Funktionen wieder nachprogrammieren wollte (Backspace, Entfernen,...). Schau dir mal die beiden Threats an, die haben mir geholfen. Beitrag 1 und Beitrag 2

Wichtig beim Lösen meines Problems damals war, dass das übergebene Key ein Word-Format hatte, was z.B. bei der OnKeyDown-Funktion der Fall ist, hingegen bei der OnKeyPress-Funktion ist der übergebene Key ein Char. Als Char hab ich das damals nicht hinbekommen, was nicht bedeutet, dass es nicht funktionieren muss.

Wenn Key ein Word-Format hat, kannst du das vk_delete einfach abfragen.

jaenicke 10. Mär 2009 17:36

Re: Ascicode für "Entfernen"
 
Der Unterschied ist, dass OnKeyDown/Up nicht auf die sichtbaren Zeichen (inkl. z.B. Zeilenumbruch, Backspace) beschränkt sind, OnKeyPress aber nur diese sichtbaren Zeichen abfangen kann.

BAMatze 10. Mär 2009 17:42

Re: Ascicode für "Entfernen"
 
Zitat:

Zitat von jaenicke
Der Unterschied ist, dass OnKeyDown/Up nicht auf die sichtbaren Zeichen (inkl. z.B. Zeilenumbruch, Backspace) beschränkt sind, OnKeyPress aber nur diese sichtbaren Zeichen abfangen kann.

Aufgrund der Ähnlichkeit seines Problemes, wenn eine Taste in der ListBox gedrückt wird und meinem damaligen Problem eine gedrückte Taste im Edit, sollte ihn das vieleicht die Lösung geben. Denke mal er hat derzeit nur das Problem, was du ebend angesprochen hast (sichtbarkeit der Tastendrücke, die er abfragt) und mit der Änderung, die auch im ersten Beitrag dokumentiert ist, sollte das Problem lösbar sein.

Jakob Ullmann 10. Mär 2009 18:37

Re: Ascicode für "Entfernen"
 
ASCII-Code von Entfernen? Also entweder ist der Titel komisch oder ich bin jetzt völlig verrückt. :gruebel: ASCII gibt es doch nur für Zeichen. Also ist sicher der Tastencode für Entfernen gemeint, oder? Dann könnte man ja einfach ein Memo auf das Formular legen, daneben eine ListBox. Und dann schreiben:

Delphi-Quellcode:
procedure TFormular.mmoEingabeKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  ListBox.Items.Add(IntToStr(Key));
end;
Oder sonst ein Blick in Delphi-Referenz durchsuchenVirtuelle Tastencodes


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.
Seite 1 von 2  1 2      

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