AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Eingabe beschränken

Ein Thema von Privateer3000 · begonnen am 31. Dez 2002 · letzter Beitrag vom 8. Mai 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Eingabe beschränken

  Alt 31. Dez 2002, 14:44
Moin Leuts,

ist es möglich ein Edit so zu beeinflussen,dass
nur Zahlen akzeptiert werden und nach eingabe eines Kommas
(Fliesskommazahl) nur noch max 2 Stellen eingegeben werden können.
(Sonst kommt es Fehler in der Berechnung)
und wenn es machbar ist: wenn ein komma eingegeben wurde,kein weiteres akzeptieren


***Aber das sind ja 3 Wünsche auf einmal!***

Rutscht gut Rein!!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 31. Dez 2002, 15:33
Moin Privateer,

das ginge entweder mit einem TMaskEdit, oder aber Du fängst das OnKeyPress Ereignis ab, prüfst den Inhalt und löscht ggf. das übergebene Zeichen.

TMaskEdit soll allerdings etwas buggy sein. (Das weiss ich allerdings nicht genau, ich hab' damit nie gearbeitet)
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#3
  Alt 31. Dez 2002, 18:37
Ja eben, ich hab keine Ahnung
wie ich die Eingabe eines weiteren Kommas verhindere.
Vielleicht sollte ich sie ganz verhindern?!
Geht das:
User gibt beispielsweise 110 ein.
Jetzt wird diese Zahl in 1,10 also immer 2 Dezimalstellen um gewandelt.
Bei 1100 in 11,00.

Wie müsste man das anstellen
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Alexander

Registriert seit: 28. Aug 2002
Ort: Oldenburg
3.513 Beiträge
 
Turbo Delphi für .NET
 
#4
  Alt 31. Dez 2002, 18:44
du könntest doch ganz einfach mit Length die Länge des Strings feststellen und dann mit Copy den ersten Teil herauskopieren (Length -2)
Dann das Komma dazwischen packen und dann wieder mit Copy den letzten Teil kopieren und ans Ende anfügen
Alexander
Alexander
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5
  Alt 31. Dez 2002, 19:19
So auf die Schnelle:
Delphi-Quellcode:
var
  Comma : Boolean = FALSE;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Comma = TRUE) and (Key = #44) then
    key := #0;
  if pos(',', Edit1.Text) > 0 then
    Comma := TRUE
  else
    Comma := FALSE;
  if not (Key in [#8,#44,#48 .. #57]) then Key := #0
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#6
  Alt 31. Dez 2002, 21:22
Thx @ all!
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#7
  Alt 6. Jan 2003, 08:42
@Luckie

dein Beispiel funktioniert soweit
nur muss man 2mal auf Komma tippen um eins zu bekommen!?
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8
  Alt 6. Jan 2003, 08:45
war ja auch nur so auf die Schnelle. Optimier es doch einfach noch etwas.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Armageddon
Armageddon

Registriert seit: 30. Mär 2003
Ort: Wilflingen
158 Beiträge
 
#9

Ich hab mir auch mal was dazu gebastelt.

  Alt 8. Mai 2003, 17:39
Hallo bin blutiger Anfänger aber das mit den Kommas hat mich echt tierisch genervt. Wollte einfach das ich noch angeben kann wieviel Stellen ich noch nach dem Komma eingeben kann. Naja bin dann nach langem rumprobieren auf das hier gekommen:

Geht sicher auch noch einfacher aber wie gesagt blutiger Anfänger.
Delphi-Quellcode:
procedure TForm1.InnendurchmesserKeyPress(Sender: TObject; var Key: Char);
var
  Komma: Boolean;
  Position: Integer;
  Stellenpuffer: String;
  Zeichenpuffer: String;
  Stellenanzahl: Integer;
begin
  Komma := False;
  Zeichenpuffer := Innendurchmesser.Text;
  if Pos('.', Zeichenpuffer) > 0 then Komma := True;
  if (Komma = True) and (Key = #44) then Key := #0;
  if (Komma = True) and (Key = #46) then Key := #0;
  if (Komma = False) and (Key = #44) then Key := '.';
  if Pos('.', Zeichenpuffer) > 0 then
  begin
    Stellenanzahl := Length(Zeichenpuffer);
    Position := Pos('.', Zeichenpuffer);
    Stellenpuffer := Copy(Zeichenpuffer, Position+1, Stellenanzahl-Position);
    Stellenanzahl := Length(Stellenpuffer);
    if Stellenanzahl = 3 then
    begin
      if (Key in [#44, #46, #48..#57]) then Key := #0
    end;
  end;
  if Key = #13 then Key := #0;
  if not (Key in [#8, #44, #46, #48..#57]) then Key := #0;
end;
Jetzt muß ich mir nurn noch was basteln wo wenn ich das Edit Feld verlasse die Stellen hinter dem Komma mit Nullen aufgefüllt werden.
Also aus z.B. 3 wird 3.000 oder aus 12.37 wird 12.370

Ich finde das Forum hier echt super muß ich noch sagen. Respekt gibt keine übersichtlicheres als das hier. Man sieht das ihr Euch echt viel Arbeit damit macht und ich hoffe Ihr macht weiter so. Damit ich noch viel lernen kann

Gruß Markus
  Mit Zitat antworten Zitat
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#10
  Alt 8. Mai 2003, 19:32
Das mit dem Nullen auffüllen würde ich so machen:

Wenn deine Komma-Variable true ist, mit pos nach dem Komma suchen und dann pos von der gesamtlänge abziehen, dann weißt du weiviele Stellen hinter dem Komma sind und die kannst du dann auffüllen, bzw einfach hinzufügen.

Man liest sich, Stanlay 8)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 16:48 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