Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Editfeld Eingabe einzeln löschen (https://www.delphipraxis.net/13408-editfeld-eingabe-einzeln-loeschen.html)

ninja 17. Dez 2003 19:32


Editfeld Eingabe einzeln löschen
 
hallo,
ich wollte mal fragen ob es eine möglichkeit gibt in einem editfeld die eingebenen zeichen einzeln rückwärts zulöschen??
gruß ninja

Leuselator 17. Dez 2003 19:40

Re: Editfeld Eingabe einzeln löschen
 
Hi,
wie meinst Du das "Einzeln" und "Rückwärts"
  • wenn der Benutzer in das Edit wechselt und dieses also den Focus erhält (und standardmäßig der gesamte Inhalt des Edits markiert wird)
  • programmgesteuert (immer hinten einen Buchstaben abschneiden)
oder wie / was ¿?
Gruß

ninja 17. Dez 2003 19:55

Re: Editfeld Eingabe einzeln löschen
 
hi,
ich mein damit das, wenn der "benutzer" eine zahlankombination eingeben muß und bemerkt das die letze eingegebene zahl falsch ist, nicht gleich alles löscht und von vorne anfangen muß, sondern nur das letzte eingegebene zeichen löscht oder auch zwei.
ninja

Christian Seehase 18. Dez 2003 00:36

Re: Editfeld Eingabe einzeln löschen
 
Moin Ninja,

wenn ich richtig vermute, dass Du die für die Eingabe zugelassenen Zeichen eingeschränkt hast, müsstest Du nur noch VK_BACK mit zulassen.

ninja 18. Dez 2003 10:03

Re: Editfeld Eingabe einzeln löschen
 
Zitat:

Zitat von Christian Seehase
Moin Ninja,

wenn ich richtig vermute, dass Du die für die Eingabe zugelassenen Zeichen eingeschränkt hast, müsstest Du nur noch VK_BACK mit zulassen.

moin moin chris,
also zugelassen habe ich im editfeld nur zahlen.
ich habe erstmal nicht gewusst was du mit VK_Back meinst, hab dann aber etwas gesucht und rausgefunden das damit die Virtuellen tasten-codes gemeint sind.
da ich aber noch nicht soviel erfahrung habe, weis ich nicht wie ich das auf meinen button legen muß, damit er die backspace-taste simuliert.
gibt es irgendwo eine anleitung dazu?
gruß ninja

r_kerber 18. Dez 2003 10:26

Re: Editfeld Eingabe einzeln löschen
 
Wie soll das Löschen denn genau erfolgen? Wenn Du es über die Software durchführen willst, vielleicht die folgende Idee:
Delphi-Quellcode:
  Edit1.Text := Copy (Edit1.Text, 1, Length (Edit1.Text) - 1);
Du mußt dann allerdings dafür sorgen, das in dem Editfeld ein Löschen von Zeichen unter Verwendung der Tastatur nicht möglich ist (also die Del-Taste abfangen).

Leuselator 18. Dez 2003 10:33

Re: Editfeld Eingabe einzeln löschen
 
Hi ninja

schau Dir mal die Ereignisse "OnKeyDown", "OnKeyPress" und "OnKeyUp" an - diese werden von Windows immer abgefeuert, wenn ein solches Ereignis innerhalb Deines Edits auftritt. Es ist nun an Dir, in den entsprechenden Methoden darauf zu reagieren oder nicht. Du könntest Also schon bevor der Benutzer in der Lage ist, ein Falsches Zeichen in das Edit einzugeben dieses löschen. Die prinzipielle Herangehensweise wäre dann so:
  • OnKeyDown tritt auf
  • Du prüfst, ob das (im anrollen befindliche aber noch nicht im Edit angekommene) Zeichen erwünscht ist (if Key in ['Liste','Erwünschter','Zeichen','Incl','Steuer','Z eichen','Wie','Back-','Space','Etc']und:
  • Du entscheidest, ob Du das Zeichen Passieren lässt (tust also nichts) oder ob das Zeichen an Deinem "Pförtner" abprallt (Key := #0;)

Thema getroffen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz