Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi keine Buchstaben im Edit-Feld...? (https://www.delphipraxis.net/5779-keine-buchstaben-im-edit-feld.html)

deadline 19. Jun 2003 07:54


keine Buchstaben im Edit-Feld...?
 
moinsen,
also ich hätte da mal wieder so eine frage... *g*

Wie geht das, dass beim click auf Buton2 in Edit1.text nach Buchstaben "gescannt" wird und der Rest des Vorgangs in "procedure THaupt.Buton2Click(Sender: TObject);" nicht durchgeführt wird, aber eine Fehlermeldung kommt wo drin steht "keine Buchstaben zulässig."

Ausserdem würde ich mal gern wissen wie ich das hinbekomme, dass die Texte aus Edit1 und Edit2 durch einander dividiert werden...

Würde mich über Hilfe hierbei sehr freuen...


mfg.
deadline

[EDIT=thomasdrewermann]Rechtschreibfehler berichtigt.[/EDIT]

Sharky 19. Jun 2003 08:31

Re: keine Buchstaben im Edit-Feld...?
 
Zitat:

Zitat von deadline
... Fehlermeldung kommt wo drin steht "keine Buchstaben zulässig."
....

Hai Deadline,

das würde ich so schon einmal nicht machen. Es sieht schlecht aus dem Anwender eine Eingabe von Buchstaben zu erlauben und im Später eine Fehlermeldung zu zeigen. Besser ist es die Eingabe von "Nichtzahlen" zu verhindern. Suche mal im Forum. Das hatten wir schon oft.

Zitat:

Ausserdem würde ich mal gern wissen wie ich das hinbekomme, dass die Texte aus Edit1 und Edit2 durch einander dividiert werden...
Text zu divieren? Das kann nicht gehen :lol:

Ich denke mal Du möchtest die Zahlen die der anwender eingegeben hat dividieren. Schaue dir dazu einmal die Funktion StrToInt an.

JoelH 19. Jun 2003 08:37

hmm,
 
also du kannst einfach durch den Strign durchgehen und nach Buchstaben suchen lassen,
etwa so:

Delphi-Quellcode:
function sortiereBuchstabenaus (Edit1:string):string;
var i : integer;
    helpstring1, helpstring2 : string;
begin
  helpstring1 := uppercase(Edit1);
  helpstring2 := '';
  for i = 1 to length(helpstring1) do
  begin
    if not((copy(helperstring1,i,1) in ['A','B','C','D','E' ....usw.!]) then
      helperstring2 := helperstring2 + copy(Edit1,i,1);
  end;
  result := helperstring2;
end;
So sollten keine Buchstabeneingaben mehr funktionieren, sie werden einfach aussortiert. Hoff ich, hab es nicht getestet und der Vergleich muss noch komplett gemacht werden.

[EDIT=thomasdrewermann]Rechtschreibfehler entfernt.[/EDIT]

deadline 19. Jun 2003 08:43

Re: keine Buchstaben im Edit-Feld...?
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von deadline
... Fehlermeldung kommt wo drin steht "keine Buchstaben zulässig."
....

Hai Deadline,

das würde ich so schon einmal nicht machen. Es sieht schlecht aus dem Anwender eine Eingabe von Buchstaben zu erlauben und im Später eine Fehlermeldung zu zeigen. Besser ist es die Eingabe von "Nichtzahlen" zu verhindern. Suche mal im Forum. Das hatten wir schon oft.

Zitat:

Ausserdem würde ich mal gern wissen wie ich das hinbekomme, dass die Texte aus Edit1 und Edit2 durch einander dividiert werden...
Text zu divieren? Das kann nicht gehen :lol:

Ich denke mal Du möchtest die Zahlen die der anwender eingegeben hat dividieren. Schaue dir dazu einmal die Funktion StrToInt an.

tjo, also das mit den buchstaben.. ich hab nie gesagt dass ich da buchstaben drib erlauben will.. nein, diese Edit-felder sind nur für zahlen gedacht... *gg*

ausserdem hatte ich eigendlich auch nit vor text zu editieren, sondern wollte ZAHLEN devidieren... ;)

mfg
deadline

JoelH 19. Jun 2003 08:48

hmm,
 
man mit
Delphi-Quellcode:
var resultat : single;
begin
  resultat := StrToFloat(Edit1.Text) / StrToFloat (Edit2.Text);
end;
probiert ?


EDIT ZUSATZ :

WARUM SAGST DU NICHT GLEICH DASS DU NUR ZAHLEN ERLAUBEN WILLST,da kannst du das if Statement oben vereinfach ;)

Zaubermaus 19. Jun 2003 08:55

Hallösche!

Um in einem Edit-Feld nur Zahlen zuzulassen, nutze ich folgende Proc:

Delphi-Quellcode:
procedure Form.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if (Key in ['!'..'/',':'..'~']) then Key := #0;
end;
Der Anwender kann nur Zahlen eintragen - alle anderen Eingaben werden abgewiesen.

die Zaubermaus

Sharky 19. Jun 2003 08:59

Re: keine Buchstaben im Edit-Feld...?
 
Zitat:

Zitat von deadline
..... nein, diese Edit-felder sind nur für zahlen gedacht... *gg*
...

Wie gesagt, es gibt eine Suchfunktion!!!

Aber ich bin heute gut gelaunt:

Code:
procedure TForm1.FormCreate(Sender: TObject);
begin
 Edit1.OnKeyPress := NurZahlen;
 Edit2.OnKeyPress := NurZahlen;
 Edit1.Text := '';
 Edit2.Text := '';
end;

{*********************************************************}

procedure TForm1.NurZahlen(Sender: TObject; var Key: Char);
begin
 If Not (Key IN ['0'..'9',',','-',#8,#9,#13]) then
  begin
   Key := #0;
  end;
end;

{*********************************************************}

procedure TForm1.Button1Click(Sender: TObject);
 var
 zahl1,
 zahl2 : Extended;
begin
if (Length(Edit1.Text) >0 ) AND (Length(Edit2.Text) > 0 ) then
 begin
  zahl1 := StrToFloat (Edit1.Text);
  zahl2 := StrToFloat (Edit2.Text);
  if (Zahl2<>0) then
   begin
    Label1.Caption := FloatToStr (zahl1/zahl2);
   end
  else
   begin
    MessageDlg('Diviesion durch 0', mtError, [mbOK], 0);
   end;
 end
else
 begin
  MessageDlg('Wie soll ich ohne Zahlen rechnen?', mtConfirmation, [mbOK], 0);
 end;
end;
Benötigt:
1 Button
2 Edit
1 Label

Christian Seehase 19. Jun 2003 08:59

Moin Zusammen,

das Abfangen einer nicht zulässigen Eingabe mittels KeyPress funktioniert aber auch nur so lange, wie der Anwender nichts durch paste einfügt.
STRG-V funktioniert bei einem Edit schliesslich standardmässig.

APP 19. Jun 2003 09:01

Hallo,
um nur Ziffern in einem TEdit zuzulassen, schau mal in die Library Nur Ziffern in Edit, ist dort einfacher und eleganter gelöst...

Sharky 19. Jun 2003 09:04

Zitat:

Zitat von Christian Seehase
Moin Zusammen,

das Abfangen einer nicht zulässigen Eingabe mittels KeyPress funktioniert aber auch nur so lange, wie der Anwender nichts durch paste einfügt.
STRG-V funktioniert bei einem Edit schliesslich standardmässig.

Hmmm.... bei mir nicht!

Es geht nur über das Kontextmenü mit der rechten Maus. Und das kann man ja leicht verhindern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.
Seite 1 von 2  1 2      

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