Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einzelnes Zeichen aus Edit löschen (https://www.delphipraxis.net/7846-einzelnes-zeichen-aus-edit-loeschen.html)

Pseudemys Nelsoni 22. Aug 2003 20:54


Einzelnes Zeichen aus Edit löschen
 
hoi, ich versuche ein ngültiges Zeichen aus einem edit zu löschen mit:

Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', 'A'..'Z', 'a'..'z', #45, #95, #123, #125, #91, #93, #96, #124, #39, #8]) then
  begin
    Application.MessageBox('Unerlaubtes Sonderzeichen verwendet!' + #13#10 + #13#10 +
                           'Erlaubte Sonderzeichen sind z.B: -_{}[]`|', 'Fehler', mb_ok);
    Edit1.Text := Copy(Edit1.Text, 1, Length(Edit1.Text) - 1);
  end;
end;
aber irgendwie funktioiert das nicht wenn das edit nur eis einem zeichen besteht, also ein "%" z.b wird nicht gelöscht, wieso das?

Gollum 22. Aug 2003 21:02

Re: Einzelnes Zeichen aus Edit löschen
 
Hallo,

anstatt

Code:
Edit1.Text := Copy(Edit1.Text, 1, Length(Edit1.Text) - 1);
machst Du das

Code:
Key:=#0;

Pseudemys Nelsoni 22. Aug 2003 21:03

Re: Einzelnes Zeichen aus Edit löschen
 
danke :D

Christian Seehase 22. Aug 2003 21:06

Re: Einzelnes Zeichen aus Edit löschen
 
Moin silent,

zu dem Zeitpunkt, zu dem OnKeyPress aufgerufen wird, steht das Zeichen noch nicht im im Edit1.Text steht.

Tausch einfach mal Deine Kopierzeile durch key := #00 aus.

Dadurch wird dann das einzufügende Zeichen gelöscht, und erscheint erst gar nicht im Edit1.Text.

BTW: Dazu hatten wir hier schon einiges. Vielleicht findest Du unter Hier im Forum suchenOnKeyPress hier noch ein wenig mehr zum Thema.

Pseudemys Nelsoni 22. Aug 2003 21:08

Re: Einzelnes Zeichen aus Edit löschen
 
hallo christian, danke auch dir :)

zu dem suchen, wenn ich ehrlich bin hatte ich keine lust (ich tu das eigentlich sonst immer zuerst!!) weil das in anderen boards zwar ein vorteil bringt weil man erst nach 1 woche mal ne antwort hat, aber hier hat man ja immer gleich schon eine nach 2min <g> das is super

ne, aber ich werd sie ab jetzt wieder immer zuerst benutzen.

Christian Seehase 22. Aug 2003 21:14

Re: Einzelnes Zeichen aus Edit löschen
 
Moin Silent,

Du wolltest für dieses Problem (einschränken der zulässigen Zeichen) schlicht einen anderen Weg gehen, der so nur nicht funktioniert.

Nur mal so ein allgemeiner Tip zu Deinem Problem:
Wenn in einem Feld nicht das steht, was Du erwartest, könntest Du es auch mal mit dem Debugger probieren, also an der fraglichen Stelle einen Breakpoint setzen, und Dir mal ansehen, was in den Datenfeldern (hier Edit1.Text) gerade so steht. Ggf. im Einzelschritt durchgehen, um die Veränderung der Inhalte zu verfolgen.

Pseudemys Nelsoni 22. Aug 2003 21:21

Re: Einzelnes Zeichen aus Edit löschen
 
danke für den tip chris,

kannst du mir noch sagen wie ich in delphi einen breakpoint setze? sind das diese kleinen blauen punkte neben dem code?

Christian Seehase 22. Aug 2003 21:31

Re: Einzelnes Zeichen aus Edit löschen
 
Moin silent,

entweder auf diese Punkte klicken (Zeile wird rot, der Punkt auch), oder aber wenn sich das Caret in der gewünschten Zeile befindet F5 drücken.

Soll das Thema Debuggen vertieft werden schlage ich allerdings einen neuen Thread vor, da dieses Thema mit diesem Thread nun nicht wirklich etwas zu tun hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:58 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