AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Minus im edit nur als erstes Zeichen erlauben
Thema durchsuchen
Ansicht
Themen-Optionen

Minus im edit nur als erstes Zeichen erlauben

Ein Thema von Nikolas · begonnen am 21. Dez 2003 · letzter Beitrag vom 22. Dez 2003
Antwort Antwort
Alibi

Registriert seit: 15. Aug 2003
Ort: Bispingen
94 Beiträge
 
Delphi 7 Personal
 
#1

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 22. Dez 2003, 14:10
Hab mal eine kleine Procedure für das OnKeyPress geschrieben um nur Integer zuzulassen, auch negative:
Delphi-Quellcode:
procedure TFormMain.EditKeyPressCheckInteger(Sender: TObject; var Key: Char);
begin
  if ((Sender as TLabeledEdit).SelStart = 0) then
  begin
   if not (Key in [#45,'0'..'9', #8]) then
     Key := #0;
  end else
    if not (Key in ['0'..'9', #8]) then
      Key := #0;
end;
Hier eine Variante für Kommmazahlen:
Delphi-Quellcode:
procedure TFormMain.EditKeyPressCheckComma(Sender: TObject; var Key: Char);
begin

  if Key = #44 then
    Key := DecimalSeparator;

  // Nur ein Komma zulassen
  if (Key = DecimalSeparator) and
     (pos(DecimalSeparator,(Sender as TLabeledEdit).Text) > 0) then
    Key := #0
  // Das Komma darf nicht am Anfang stehen
  else if (Key = DecimalSeparator) and ((Sender as TLabeledEdit).SelStart = 0) then
    Key := #0

  // -, nicht zulassen
  else if ((Sender as TLabeledEdit).SelStart = 1) and
     ((Sender as TLabeledEdit).Text[1] = #45) and
     (Key = DecimalSeparator) then
    Key := #0

  // Ein Minus darf am Anfang stehen und nur Zahlen zulassen sowie Backspace
  else if ((Sender as TLabeledEdit).SelStart = 0) then
  begin
   if not (Key in [DecimalSeparator,#45,'0'..'9', #8]) then
     Key := #0;
  end else
  begin
    if not (Key in ['0'..'9', #8, DecimalSeparator]) then
      Key := #0;
  end;
end;
Aber: Ich hab in dem Projekt das so gemacht, dass als Komma nur ein . zugelassen wird. Wenn die Kommataste gedrückt wurde, dann wird ein Punkt hinzugefügt, kein Komma.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots.
So far, the Universe is winning.
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:18 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