![]() |
Edit-Feld auf Inhalt überprüfen
Hi!
Ähm, also ich bin zwar schon lange hier angemeldet, aber irgendwie neu hier..:) Sorry, wenns der falsche Unterforum ist und hier nicht reinpasst... :/ Also ich möchte gerne, dass meine edit.text überprüft wird, ob was geschrieben wurde, bevor ich auf OK klicke. Wenn da nichts geschrieben worden ist, dann soll eine Fehlermeldung kommen, die ich selbst gerne definieren bzw. gestalten möchte. Im moment ist das so, dass, wenn ich keine Zahl eingebe und dann auf OK klicke, dass da dann eine fehlermeldung kommt wo drinne steht: '' ist kein gültiger Gleitkommawert Dieses würd ich gern selbst erstellen und würd mich freuen, wenn jemand helfen könnte. |
Re: Edit-Feld auf Inhalt überprüfen
Indem Du überprüfst, ob Edit1.Text = '' ist.
|
Re: Edit-Feld auf Inhalt überprüfen
Also mit Edit1.Text = '' überprüfe ich ja, ob was in '' enthalten ist. Somit wäre ja schon das erste prob gelöst.
Wie mach ich denn jetzt, dass, wenn in '' nichts enthalten is, eine Fehlermeldung sprich showMessage kommt? |
Re: Edit-Feld auf Inhalt überprüfen
Delphi-Quellcode:
MfG Florian :hi:
if
Edit1.Text = '' then MessageDlg('Sie müssen zunächst etwas eingeben!', mtWarning, [mbOK], 0); else //is ja alles prima also brauch da nix stehen end; |
Re: Edit-Feld auf Inhalt überprüfen
Vielleicht so was ?
Delphi-Quellcode:
Mit meiner Möglichkeit wäre dann nur ein OK Taste ...
If Edit1.Text = '' then ShowMessage ('Sorry Du hast nichts reingeschrieben');
|
Re: Edit-Feld auf Inhalt überprüfen
Also die Logik, worauf ihr hinaus wollt, versteh ich, aber was ich nicht verstehe is, wo das hingeschrieben werden soll. :/
|
Re: Edit-Feld auf Inhalt überprüfen
du willst bestimt prüfen ob wenn du auf einen button klickst ob das feld mit etwas gefüllt ist
dan schribst du es da hin wo du hingelangst wenn du doppelt auf den button klickst wenn mich meine delphi kenntnisse da nciht trügen. |
Re: Edit-Feld auf Inhalt überprüfen
Ja, ich hab doppelklick auf OK gemacht und dann da eingegeben, aber dann sagt der mir entweder false wird nich benötigt, oder es kommt keine fehlermeldung, sondern nur die alte übliche.
|
Re: Edit-Feld auf Inhalt überprüfen
Und was ist bei dir das "übliche"?
Alle hier angebotten Lösungen funktionieren und machen genau das, was du willst. |
Re: Edit-Feld auf Inhalt überprüfen
Nehmen wir mal an Du hast ein Edit1 und ein Button1. Dann muss dieser Code in der "OnClick" (Doppelklick auf Button) reingesetzt werden. Dass würde dann so aussehen:
Delphi-Quellcode:
Falls Du aber mehr Codes als nur eine Ausgabe brauchst, dann würde es so aussehen:
procedure TForm1.Button1Click(Sender: TObject);
begin if edit1.text <> '' then ShowMessage ('Du hast was reingeschrieben') else ShowMessage ('Du hast NIX reingeschrieben'); end;
Delphi-Quellcode:
Im zweiten Fall kannst du zwischen den begin und end weitere Codes einfügen.
procedure TForm1.Button1Click(Sender: TObject);
begin if edit1.text <> '' then begin //Hier kommt Codes rein wenn was reingeschrieben wurde. ShowMessage ('Du hast was reingeschrieben'); end else begin //Hier kommt Codes rein wenn NIX reingeschrieben wurde. ShowMessage ('Du hast NIX reingeschrieben'); end end; |
Re: Edit-Feld auf Inhalt überprüfen
Lucki, die übliche fehlermeldung war diese hier:
'' ist kein gültiger Gleitkommawert Ich habe mal die Lösung von Darty versucht und das hat einwandfrei funktioniert! :) Da hab ich auch direkt verstanden wie das angeordnet werden muss, aber trotzdem danke an alle anderen! ;) Wenn ich jetzt keine Zahl eingeb, dann kommt eine Meldung sprich showMessage mit: " Du hast keinen Betrag eingegeben! " Wenn ich jetzt aber Buchstaben reinschreibe, dann kommt die Meldung: " '' ist kein gültiger Gleitkommawert" Kann man das auch noch ändern? |
Re: Edit-Feld auf Inhalt überprüfen
hallo chaozu!
Zitat:
irgenwie scheint mir in deiner überprüfung auf zahleneingaben der wurm drin zu sein ;) versuchs mal so
Delphi-Quellcode:
ACHTUNG: StrToFloat verweigert den tausenderpunkt. aber F1-benutzer wissen das ohnehin :wink:
{$UNTESTED}
tmpvalue: double; begin try tmpvalue:= StrToFloat(EditFeldName.text) except on E: EConvertError do ShowMessage('keine zahl eingegeben'); end; mfg, stefan |
Re: Edit-Feld auf Inhalt überprüfen
Delphi-Quellcode:
Das Komma [,] darf in einem Edit kein Punkt [.] sein.
procedure TForm1.Button1Click(Sender: TObject);
var Zahl: real; begin try Zahl:=StrToFloat(Edit1.Text); //Hier kommt der Code rein, //wenn's eine Gleitkommazahl ist except ShowMessage('keine Zahl eingegeben'); end; end; |
Re: Edit-Feld auf Inhalt überprüfen
Mit val kann man das sehr schön ohne try-except lösen, einfach den Fehlercode abfragen.
|
Re: Edit-Feld auf Inhalt überprüfen
Irgendwie versteh ich die letzten 3 Antworten net :|
Vielleicht hilfts ja, wenn ich mal die Unit1 poste. Also hier is nur ein Teil von 2...ich hab nämlich 2 Buttons und 2 edit.text! Einen für Euro -> DM und einen für DM -> Euro
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
// Umrechnung Mark in Euro // Variablendefinition var Mark, Euro : double; begin if edit1.text <> '' then begin // Code, wenn etwas hinein geschrieben wurde // Eingabe in das Eingabefeld wird in der Variablen Mark abgespeichert Mark := StrToFloat(edit1.text); // Umrechnung in Euro Euro:=0.51129*Mark; // Ausgabe des Ergebnisses showMessage('Betrag in Euro: '+FloatToStrF(Euro,ffNumber,10,2)); end else begin // Code, wenn nichts hinein geschrieben wurde showMessage ('Du hast keinen Betrag eingegeben!'); end end; |
Re: Edit-Feld auf Inhalt überprüfen
Hai Chouzu,
Zitat:
Zitat:
Also... mal überlegen... Im Edit steht ein Buchstabe und Du möchtest daraus eine Zahl machen. Das kann nicht gehen. In den obigen Antworten wird einfach eine "Fehlerbehandlung" eingebaut die den Laufzeitfehler "unterdrückt". Besser wäre es aber die Eingabe von Buchstaben gleich zu unterbinden. |
Re: Edit-Feld auf Inhalt überprüfen
Du willst woh ein Eurorechner machen??
Probiers doch so:
Delphi-Quellcode:
Spider
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var DM, ER: Extended; begin DM := strtofloat (Edit1.text); ER := DM * 1.95583; //Der Punkt ist sehr wichtig keine Komma!!! ER:=round(ER*100)/100; //Diese Round funktion iist nicht besoners gut //Denn da ist auch 1DM 0€! Edit1.text := floattostr(ER); end; procedure TForm1.Button2Click(Sender: TObject); var EUR, ER: Extended; begin EUR := strtofloat (Edit2.text); ER := EUR / 1.95583; //Hier auch kein Komma! ER:=round(ER*100)/100; //Hier wird gerundet! Edit2.text := Floattostr (ER); end; end. |
Re: Edit-Feld auf Inhalt überprüfen
Zitat:
Code:
Die Berechnung mit dem inversen Multiplizieren ist ausdrücklich unzulässig. Wobei Du noch nicht einmal korrekt invertierst.
Euro = Mark / 1,95583
|
Re: Edit-Feld auf Inhalt überprüfen
Sharky, wenn ich das StrToFloat weglasse, dann gehts gar nicht mehr und ich kanns nicht complimieren.
Oder meintest du was anderes Spider, warum sollte ich denn ein neues Code verwenden, wenn meins doch schon ganz gut klappt? Mal davon abgesehn, geht deins gar nicht. ;) Hast bestimmt 2 showmessage Befehle vergessen! Tom, is das nich im Prinzip das gleiche wie bei mir? |
Re: Edit-Feld auf Inhalt überprüfen
Zitat:
Zitat:
Zitat:
|
Re: Edit-Feld auf Inhalt überprüfen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 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