Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Alle Edit-Felder auf Eingaben prüfen (https://www.delphipraxis.net/59379-alle-edit-felder-auf-eingaben-pruefen.html)

Ati 21. Dez 2005 13:55


Alle Edit-Felder auf Eingaben prüfen
 
Mahlzeit,

auch zu diesem Thema habe ich einiges gefunden und auch etliches schon ausprobiert, jedoch funktioniert nichts so wie ich es gerne hätte. Ziel ist es in meiner Anwendung alle Edit-Felder auf Eingaben zu prüfen. Es gibt insgesamt 9 Felder, wovon 8 quasi Pflichtfelder sind. Ich habe es schon mit verschachtelten IF-Then-Abfragen versucht jedoch geht das nur beim ersten Feld. Ist das zweite leer so tut sich nichts (es erscheint allerdings auch nicht meine Nachricht). Dann habe ich die Überprüfung für jedes Feld bei "OnExit" durchgeführt. Das hat soweit funktioniert, nur habe ich Buttons plaziert, wo a) alle Eingaben gelöscht werden können und b) die Anwendung beendet werden kann. Diese Buttons verursachen dann allerdings meine Fehlermeldung und ich kann die Anwendung nicht unterbrechen bzw. beenden. Wie kann ich hier weiter vorgehen!!

Ati

dahead 21. Dez 2005 14:11

Re: Alle Edit-Felder auf Eingaben prüfen
 
mach doch einen "Übernehmen" oder "Bestätigen" Button unter die ganzen Edits.
Darin rufst du eine Prüf-Funktion auf, die prüft ob alle Text ungleich '' sind.
Dazu kannst du entweder jedes TEdit.Text einzeln prüfen lassen, oder in einer For-Schleife (siehe dazu die Hilfe FindComponent).

mgubler 21. Dez 2005 14:13

Re: Alle Edit-Felder auf Eingaben prüfen
 
So in etwa aus dem Kopf gegriffen habe ich mal etwas gelöst.
Zwar kompliziert, aber in PHP hat es wunderbar geklappt!


Delphi-Quellcode:
...
var
 bErrFeld1,
 bErrFeld2,
 bErrFeld3,
 bErrFeld4,
 bErrFeld5,
 bErrFeld6,
 bErrFeld7,
 bErrFeld8: boolean;
//hier alle auf true setzen!
...

 sErrMsg1,
 sErrMsg2,
 sErrMsg3,
 sErrMsg4,
 sErrMsg5,
 sErrMsg6,
 sErrMsg7,
 sErrMsg8: string;

 sErrAll: string;

begin

if (edit1.text <> '') then
begin
   bErrFeld1 := false;
end
else
begin
   sErrMsg1 = 'Feldname';
end;

...

if (bErrFeld1 = true) OR (bErrFeld2 = true) OR (bErrFeld3 = true).... then
begin
  if (bErrFeld1 = true) then sErrAll := 'Name des Ersten Feldes';
  if (bErrFeld2 = true) then sErrAll := sErrAll+#13#10+'Name des zweiten Feldes';
...

Showmessage('Nachfolgende Felder müssen auf Ihren Inhalt geprüft werden:' + #13#10+ sErrAll);
end;
end;

AndreasP 21. Dez 2005 14:16

Re: Alle Edit-Felder auf Eingaben prüfen
 
mahlzeit,

nachfolgender code müßte dein problem lösen. er läst sich noch optimieren wie z.b. ein forzeitiger abbruch oder das nich das ganze formular abgefragt wird. aber das prinzip sollte klar sein.
Delphi-Quellcode:
var a, i: integer;
begin
  a := 1;
  for i := 0 to Form1.ComponentCount -1 do
  begin
    if Form1.Components[i] is TEdit then
      a := a * (Length(TEdit(Form1.Components[i]).Text));
  end;

  if a = 0 then
    ShowMessage('Bitte Eingabe überprüfen');

Ati 21. Dez 2005 15:41

Re: Alle Edit-Felder auf Eingaben prüfen
 
Danke Andreas. Dein Code funktioniert schon zu gut. Ein Problem gibt es da aber noch. Das letzte Edit-Feld ist optional. D.h. es muß nicht ausgefüllt werden. Wie kann ich das einbauen??

Ati

dahead 21. Dez 2005 15:45

Re: Alle Edit-Felder auf Eingaben prüfen
 
du könntest es entweder direkt überprüfen (also ob das TEdit in der schleife auftaucht) oder du weist ihm bspw. den Tag 1 zu. alle TEdits mit diesem Tag werden ignoriert.

Ati 21. Dez 2005 15:50

Re: Alle Edit-Felder auf Eingaben prüfen
 
@dahead den ersten Teil habe ich noch nicht ganz verstanden. Das mit Tag=1 funktioniert so ohne weiteres nicht.

AndreasP 21. Dez 2005 15:57

Re: Alle Edit-Felder auf Eingaben prüfen
 
mahlzeit,

was dahead meint ist das du dem 9. edit über den oi den tag 1 (oder ein anderen wert) zuweist und du den code entsprechend abänderst das dieses edit nicht geprüft wird:
Delphi-Quellcode:
if (Form1.Components[i] is TEdit) and (Form1.Components[i].Tag <> 1) then

Ati 21. Dez 2005 16:06

Re: Alle Edit-Felder auf Eingaben prüfen
 
Ach so. Sorry. Habe ich jetzt mal so eingebaut, jedoch ist die überprüfungsfunktion damit ausgehebelt. Habe mal nur das erste Edit-Feld eingetragen und er hat den DS trotzdem ohne meckern gespeichert!!
Hier mla mein aktueller Code
Delphi-Quellcode:
a := 1;
  for i := 0 to Form1.ComponentCount -1 do
  begin
    if (Form1.Components[i] is TEdit) and (Form1.Components[i].Tag = 0) then
      a := a * (Length(TEdit(Form1.Components[i]).Text));
  end;

  if a = 0 then
   begin
    ShowMessage('Bitte Eingabe überprüfen');
    exit;
   end;

dahead 21. Dez 2005 16:12

Re: Alle Edit-Felder auf Eingaben prüfen
 
kann es sein, dass du vergessen hast den tag auf 1 zu setzen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Seite 1 von 4  1 23     Letzte »    

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