AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi TEdit NumbersOnly, Meldung nicht anzeigen
Thema durchsuchen
Ansicht
Themen-Optionen

TEdit NumbersOnly, Meldung nicht anzeigen

Ein Thema von Schwarz · begonnen am 25. Okt 2016 · letzter Beitrag vom 25. Okt 2016
 
Whookie

Registriert seit: 3. Mai 2006
Ort: Graz
454 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: TEdit NumbersOnly, Meldung nicht anzeigen

  Alt 25. Okt 2016, 10:34
Nicht "statt" sondern "zusätzlich",
sonst komm ich und benutze Strg+V oder Kontextmenü\Einfügen.
Und [Entf] und eventuell [-] und ...
Das ist ja das schöne an der Lösung, NumbersOnly erlaubt kein -, keinen Dezimalpunkt und auch kein + und die Fehlermeldung ist dann auch wieder da!

über on KeyDown hat man das größtenteils selber in der Hand...

Die einfachste Lösung um grundsätzliches Editieren zu erlauben sieht dann so aus:

Delphi-Quellcode:
Uses
  Clipbrd;

Const
  KEY_STRGV = #$16;
  KEY_BACK = #8;
  KEY_STRGC = #3;
  KEY_STRGX = #$18;

procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: Char);
Var
  LBuffer: Array[0..100] Of Char;

  Function IsValid(Const AStr: String): Boolean;
  var
    i: Integer;
  begin
    Result := TRUE;
    for i := 1 to Length(AStr) do
    begin
      if Not CharInSet(AStr[i], ['0'..'9']) then
      begin
        Result := FALSE;
        Break;
      end;
    end;
  end;

begin
  if Not CharInSet(Key, [#3,#8, #$16, #$18,'0'..'9']) then
    Key := #0;
  if Key = KEY_STRGV then
  begin
    If Not IsValid(Clipboard.AsText) Then
      Key := #0;
  end;
end;
Damit kann im Edit ausgeschnitten, eingefügt und gelöscht werden. Zusätzlich kann man dann auch jedes beliebige andere Zeichen erlauben...


Grundsäztlich kann man hier natürlich einfach ein TMaskEdit verwenden allerdings finde ich die Eingabe dort ziemlich unzumutbar.


Persönlich bevorzuge ich es, den Benutzer eingeben zu lassen was er möchte, wenn der das Feld dann verlässt (oder den Dialog schließt) wird er darauf hingewiesen das es ein Eingabeproblem gibt.
Das ist einfach umzusetzen und bringt auch im späteren Verlauf die wenigsten Probleme...
Whookie

Software isn't released ... it is allowed to escape!
  Mit Zitat antworten Zitat
 


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 14:22 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