![]() |
Suche nach einem Zeichen in einem Edit
Ich will verhindern, dass in einem Edit mehr als ein komma eingegeben wird.
Deswegen versuche ich bei jedem Keypress das edit zu durchsuchen indem ich mir von jedem Zeichen den Ascii-Wert anschaue.
Delphi-Quellcode:
bei der if-Zeile bekomme ich aber einen EAccessViolation und ich komm nicht darauf warum. :gruebel:
for i:= 0 to length(edi1.text) do
begin if ord(edit1.Text[i]) = 44 then Kommagefunden:=true; end; Vielen Dank THXbyTOX |
Re: Suche nach einem Zeichen in einem Edit
|
Re: Suche nach einem Zeichen in einem Edit
Hallo Toxman,
Code:
Du mußt von 1 weg zählen.
for i:= 1 to length(edi1.text) do
|
Re: Suche nach einem Zeichen in einem Edit
Das ist nicht mein Problem. Ich will es im endeffekt so machen dass ich, wenn ich ein komma gefunden habe, in der
Delphi-Quellcode:
noch #44
If not(key in [#8,#48..#57])
hinzufügen will. Mein Problem ist die EAccessviolation die ausgelöst wird. Danke |
Re: Suche nach einem Zeichen in einem Edit
Hallo
also ich weiß nicht, bei mir funktioniert es wie es soll, ohne Fehler! Vielleicht kommt deine Fehlermeldung von wo anderst her? p.s. Zitat:
|
Re: Suche nach einem Zeichen in einem Edit
:warn: Hättest ja mal in meine Demo schauen können.
Dann währe das ja schon lange geklärt. Das Teil beachtet sogar welches Zeichen im laufenden System als komma verwendet wird.
Delphi-Quellcode:
Die Suchfunktion dieser Seite ist übrigens sehr gut.
{© by Himitsu @ Delphi-PRAXiS}
Procedure TInputBoxNZForm.Edit1KeyPress(Sender: TObject; Var Key: Char); Begin If not (Key in [#08, #13, DecimalSeparator{,}, '0'..'9']) Then Key := #00; If (Key = DecimalSeparator{,}) and (Pos(DecimalSeparator{,}, Edit1.Text) > 0) Then Key := #00; End; |
Re: Suche nach einem Zeichen in einem Edit
Das war der Fehler. Mit i=0 hab ich versucht die 0te Stelle des edits zu lesen und das hat dann die Eaccesviolation ausgelöst.
THXbyTOX :dp: |
Re: Suche nach einem Zeichen in einem Edit
Der Link hat mir aber mein Problem nicht ganz erklärt, da meine Idee mit der For-Schleife nicht benutzt wird. Und die Suchfunktion ist dass, was ich vor jedem Post hier gut anschaue.
Tox |
Re: Suche nach einem Zeichen in einem Edit
PS:
Delphi-Quellcode:
Ist nur etwas schneller und einfacher.
If Pos(',', Edit1.Text) > 0 Then KommaGefunden := True;
{ entspricht deinem } For i := 1 to Length(Edi1.Text) do If Ord(Edit1.Text[i]) = 44 Then KommaGefunden := True; For i := 1 to Length(Edi1.Text) do If Edit1.Text[i] = ',' Then KommaGefunden := True; |
Re: Suche nach einem Zeichen in einem Edit
Ich kannte bisher den pos(..) befehl noch nicht und deswegen hat mir auch diese antwort nicht viel gebracht. Da ich versuche etwas für die schule zu schreiben un da kann ich natürlich nur sachen benutzen, von denen ich weiss warum un diwe sie funktionieren. Und da hilft es mir nichts, wenn ich eine fremde Idee ( und ist sie noch so schön) per Copy&paste übernehme und sie dann benutze ohne zu wissen warum.
Aber Danke für die Antwort THXbyTOX |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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