Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Edit feld auf eingabe überprüfen? (https://www.delphipraxis.net/57839-edit-feld-auf-eingabe-ueberpruefen.html)

Headi 27. Nov 2005 14:59


Edit feld auf eingabe überprüfen?
 
Hallo leute,

Ich habe eine ganz simple frage, und zwar
habe ich ein edit feld, ich möchte jetzt prüfen ob dort irgendwas drinsteht.
Ich meine das ist ja nicht sehr schwirig, mein code:

Delphi-Quellcode:
    If Edit1.Text='' then
    a:='keine eingabe!!';
Nur wenn jetzt jemand nur ein Leerzeichen eingibt, sollte das auch
zur meldung 'keine eingabe!!!' führen.
Natürlich könnte ich jetzt diesen code benutzen:

Delphi-Quellcode:
If Edit1.Text='' then
    a:='keine eingabe!!';
If Edit1.Text=' ' then
    a:='keine eingabe!!';
Der überprüft mir allerdings nur ein Leerzeichen,
Ich möchte ja aber alle leerzeichen überprüfen, da es sein
kann dass der 3 leerzeichen eingibt oder so.

Wie geht das??



Achja noch ne kleine Frage:
Bei If Edit1.Text='' kann ich da irgendwie ein 'or' einsetzen dass der mir mehrere angaben überprüft??
Ich habe es auch schon mit diesem überprüft aber das geht nicht:

Delphi-Quellcode:
 If Edit1.Text='erste angabe' or 'zweite angabe' then
a:='geht nicht';

So das wars mal
Ich hoffe ihr könnt mir helfen und ich habe euch nicht zu fest zugetexted :stupid:

mfg headi

Matze 27. Nov 2005 15:06

Re: Edit feld auf eingabe überprüfen?
 
Delphi-Quellcode:
if StringReplace(Edit1.Text, ' ', '', [rfReplaceAll]) = '' then
Das entfernt alle Leerzeichen.

Nachtrag zum 'or': Klammern setzen:

Delphi-Quellcode:
 if (...) or (... ) then

Sharky 27. Nov 2005 15:39

Re: Edit feld auf eingabe überprüfen?
 
Hai ihr,

warum sich das leben so schwer machen? Einfach mit Delphi-Referenz durchsuchenTrim oder Delphi-Referenz durchsuchenTrimLef arbeiten.
Delphi-Quellcode:
procedure TDemoForm.btn_CheckEditClick(Sender: TObject);
begin
  if (TrimLeft(edt_1.Text) = '') then
  begin
    ShowMessage('Fehler bei der Eingabe');
  end;
end;

Headi 27. Nov 2005 17:44

Re: Edit feld auf eingabe überprüfen?
 
erstmals vielen dank euch beiden,

@matze:

Delphi-Quellcode:
if StringReplace(Edit1.Text, ' ', '', [rfReplaceAll]) = '' then
Kann es sein dass dieser code alle leerzeichen entfernt??
Ich möchte ja nur dass die leerzeichen entfehrnt werden falls sonst nichts im edit feld steht.
Würde dort jetzt "hallo ich bin ein Text" stehen würde der dann ja so aussehen "halloichbineinText" kann das sein oder sehe ich
das falsch?

Dann der zweite Code ist genau das was ich gesucht habe, danke!


@Sharky:

Irgendwie löst dieser code doch mein Problem mit den leerzeichen nicht??

mfg headi

Ultimator 27. Nov 2005 17:48

Re: Edit feld auf eingabe überprüfen?
 
@Headi:
TrimLeft entfernt alle Leerzeichen (und soweit ich weiß auch nicht-darstellbaren Zeichen) am linken Rand des Strings.
TrimLeft folgt analog ;)
Und Trim vereint trimLeft und trimRight ;)

Matze 27. Nov 2005 17:49

Re: Edit feld auf eingabe überprüfen?
 
Zitat:

Zitat von Headi
Kann es sein dass dieser code alle leerzeichen entfernt?? [...]

Ja, es entfernt alle. Folglich wird es immer als leer erkannt, sobald der Inhalt nur aus Leerzeichen besteht, egal aus wie vielen. Der Text selbst wird nicht verändert. Also wenn Text drinnen steht und du liest ihm mit Edit1.Text aus, sind die Leerzeichen natürlich noch vorhanden.

Sharky 27. Nov 2005 17:51

Re: Edit feld auf eingabe überprüfen?
 
Zitat:

Zitat von Headi
... Irgendwie löst dieser code doch mein Problem mit den leerzeichen nicht??

Warum?

TrimLeft entfernt alle Leerzeichen die links vor dem ersten Zeichen stehen.
Wenn im Edit zum Beispiel " blubb" steht ist das Ergebniss von TrimLeft = "blubb".
Wenn im Edit " " steht (ein Leerzeichen) ist das Ergebniss "". Also ein Leerstring. Und genau auf diesen wird ja geprüft.

Headi 27. Nov 2005 18:05

Re: Edit feld auf eingabe überprüfen?
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Headi
... Irgendwie löst dieser code doch mein Problem mit den leerzeichen nicht??

Warum?

TrimLeft entfernt alle Leerzeichen die links vor dem ersten Zeichen stehen.
Wenn im Edit zum Beispiel " blubb" steht ist das Ergebniss von TrimLeft = "blubb".
Wenn im Edit " " steht (ein Leerzeichen) ist das Ergebniss "". Also ein Leerstring. Und genau auf diesen wird ja geprüft.

Zitat:

Zitat von Ultimator
@Headi:
TrimLeft entfernt alle Leerzeichen (und soweit ich weiß auch nicht-darstellbaren Zeichen) am linken Rand des Strings.
TrimLeft folgt analog
Und Trim vereint trimLeft und trimRight


Achso ist das, ich dachte der würde mir ALLE leerzeichen und nicht nur die links entfernen :gruebel:
Aber da hab ich wohl falsch gedacht.

Also vielen dank!!

mfg headi


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:54 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