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

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
Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Minus im edit nur als erstes Zeichen erlauben

  Alt 21. Dez 2003, 21:58
HI

Ich versuche ein edit zu bauen, in dem man nur floats eintragen kann.
(d.h. nur zahlen , max ein komma, max ein minus und das auch nur am Anfang)

Mein letztes Problem ist jetzt das, dass ich es einfach nicht hinbekomme, das Minus nur als erstes Zeichen zuzulassen.
Mir würde ein befehl helfen, mit dem ich lesen könnte, ob der Cursor im Edit an der ersten Stelle steht, oder nicht. Nur der ist schwierig zu suchen

Hat da jemand eine Idee?
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 21. Dez 2003, 22:08
Moin Toxman,

schau Dir doch mal TEdit.SelStart an.
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 Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 21. Dez 2003, 22:11
klingt in der OH sehr vielversprechend.
Damit wirds funzen.

THXbyTOX
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat
Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#4

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 22. Dez 2003, 10:13
Hallo Toxman,

ich hab' das zwar nicht erfunden, aber für Zahlen macht's sich gut als Komponente.

Im Quelltext findest Du bestimmt die Lösung für Dein Problem.

mfg
eddy
Angehängte Dateien
Dateityp: pas enhedit_434.pas (10,8 KB, 12x aufgerufen)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#5

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 22. Dez 2003, 11:21
Hi,

dafür braucht man nun wirklich keine Fremdkomponente. Du brauchst doch nur z.B. length (Edit1.Text) > 1 zu überprüfen und dann das - zu unterdrücken oder zuzulassen.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von Lantis
Lantis

Registriert seit: 13. Mär 2003
16 Beiträge
 
Delphi 6 Personal
 
#6

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 22. Dez 2003, 12:56
Könnte ungefähr so aussehen:
Delphi-Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in ['0'..'9',#8,#44,#45]) then Key := #0;
  if (length(edit1.Text)>0) and (Key in [#45]) then Key := #0;
  if (pos(#44,edit1.Text)>0) and (Key in [#44])then Key := #0;
end;
Gruß Lantis
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#7

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 22. Dez 2003, 13:58
Hi!

Zu dem was Hansa sagt:

Zitat:
length (Edit1.Text) > 1
Ich glaub nicht, dass das geht! Weil ich könnte ja auch schreiben:

12345,78 und mich dann entschließen an Stelle 1 (also eigentlich erlaubt) ein Minus zu schreiben, aber das geht dann nicht mehr, oder irre ich mich da?

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
Alibi

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

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
Benutzerbild von notam
notam

Registriert seit: 20. Dez 2003
50 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 22. Dez 2003, 15:26
Hi!

Bin neu hier hier. Kann man das nicht einfach mit TMaskEdit realisieren?

Beispielsweise: #9999;1;_
Unter 'TCustomMaskEdit.EditMask' werden alle Befehle aufgelistet.
Manuel
Mein Name ist Hase, ich weiß von nichts.

Posting And You...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.114 Beiträge
 
Delphi 12 Athens
 
#10

Re: Minus im edit nur als erstes Zeichen erlauben

  Alt 22. Dez 2003, 15:37
Ein Hallöle von http://www.FrankNStein.de/Smiley-Wolke.gif,

Zitat von himitsu:
Kannst natürlich auch mal das versuchen.
  • InputBox für Extended
  • incl. negativen Bereich
  • nimmt das im System angegebenen Dezimaltrennzeichen
  • überprüft die korrekte Schreibweise der eingegebene Zahl
    (allerdings nicht, wenn die Zahl über Zwischenanlage eingefügt wird)

Da du ja anscheinend keine negativen Zahlen brauchst, hab ich dir mal eine Version ohne erstellt.
Download des Codes siehe: Nur Zahlen und Punkte in InputBox


http://www.FrankNStein.de/Smiley-Kuss.gif * * http://www.FrankNStein.de/Smiley-Spinne.gif * * * http://www.FrankNStein.de/Smiley-Winken.gif
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:57 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