![]() |
Re: Alle Edit-Felder auf Eingaben prüfen
mahlzeit,
mit = 0 wird doch im normal fall alle edits geprüft, deshalb der forschlag mit edit = 1. |
Re: Alle Edit-Felder auf Eingaben prüfen
Hai Ati,
hier mal mein Quick and Dirty Code. Es werden alle TEdits beachtet deren Tag <> 1 ist.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var test: Boolean; i : integer; begin test := True; for i := 0 to Form1.ComponentCount -1 do begin if (Components[i] is TEdit) and (Components[i].Tag <> 1) then begin if Length((Components[i] as TEdit).Text) = 0 then begin test := False; break; end; end; end; if not (Test) then begin ShowMessage('Fehler bei der Eingabe'); end; end; |
Re: Alle Edit-Felder auf Eingaben prüfen
@dahead :wink: Nein :wink:
@Andreas hoffentlich versteh ich Deine Aussage jetzt nicht falsch. Du beziehst Dich wohl darauf das ich hinten mit einer =0 arbeite und nicht <>1. Aber beides hat nicht funktioniert |
Re: Alle Edit-Felder auf Eingaben prüfen
Das Eine Edit-Feld,was nur Optional ist hat ja nen bestimmten namen(in meinen Beispiel hat das Edit Feld den Namen Test).
dann frag den doch einfach ab:
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) and (Form1.Components[i].name<>'Test') then a := a * (Length(TEdit(Form1.Components[i]).Text)); end; if a = 0 then begin ShowMessage('Bitte Eingabe überprüfen'); exit; end; |
Re: Alle Edit-Felder auf Eingaben prüfen
HAAAAAAAAllllllllllllllllltttt Stoooopppp
Bevor ihr euch jetzt Gedanken macht!!! Ich habe nur 1 wirkliches TEdit-Feld. Die anderen sind entweder TMaskEdit oder TDateEdit. Mein Gott ist mir das peinlich. |
Re: Alle Edit-Felder auf Eingaben prüfen
loool
ist aber eigentlich auch kein problem musst nur die If Abfrage für alle felder, die du abfragen möchtest erweitern so z.b
Delphi-Quellcode:
kann nur sein, das du das net mit dem or Abfragen kannst, sondern das du
a := 1;
for i := 0 to Form1.ComponentCount -1 do begin if ((Form1.Components[i] is TEdit) or (Form1.Components[i] is TMaskEdit) or (weiter Felder) and (Form1.Components[i].Tag = 0) and (Form1.Components[i].name<>'Test') then a := a * (Length(TEdit(Form1.Components[i]).Text)); end; if a = 0 then begin ShowMessage('Bitte Eingabe überprüfen'); exit; end;
Delphi-Quellcode:
Musst halt alle sachen, die mit .text arbeiten in eine If-Abfrage packen und alle die z.b mit .value arbeiten in eine if-abfrage.
if(Form1.Components[i].Tag = 0) and (Form1.Components[i].name<>'Test') then
if (Form1.Components[i] is TEdit) then a := a * (Length(TEdit(Form1.Components[i]).Text)); else Abfrag für die anderen Typen then a := a * (Length(TEdit(Form1.Components[i]).Value)); wenn die allerdings alle mit .text arbeiten, würd ich die obere variante nehmen. |
Re: Alle Edit-Felder auf Eingaben prüfen
Kann mir jemand helfen wie ich diesen Code den Umbauen muß.
Ich habe 5 xTMaskEdit, 2xTDateEdit und eine TCombobox. |
Re: Alle Edit-Felder auf Eingaben prüfen
Hai Ati,
ich würde es so machen:
Delphi-Quellcode:
Ich habe also für jede zu prüfende Komponente eine Testfunktion welche man sich noch ausprogrammieren muss.
function EditTest(const aEdit : TEdit): boolean;
begin result := Length (aEdit.Text) > 0; end; function DateEditTest(aDateEdit : TJvDateEdit): Boolean; begin result := true; // Ein Passender Code end; function MaskEditTest(aMaskEdit : TMaskEdit): Boolean; begin result := true; // und noch ein Code; end; procedure TForm1.Button1Click(Sender: TObject); var test: Boolean; i : integer; tmpComponent : TComponent; begin test := True; for i := 0 to ComponentCount -1 do begin tmpComponent := Components[i]; if (tmpComponent is TEdit) then // Test des Edit begin test := EditTest (tmpComponent as TEdit); end; if (tmpComponent is TJvDateEdit) then // Test des DateEdit begin test := DateEditTest (tmpComponent as TJvDateEdit); end; if (tmpComponent is TMaskEdit) then // Test des MaskEdit begin test := MaskEditTest (tmpComponent as TMaskEdit); end; if not (test) then begin break; end; end; if not (Test) then begin ShowMessage('Fehler bei der Eingabe'); end; end; |
Re: Alle Edit-Felder auf Eingaben prüfen
Irgendeinen kleinen Fehler habe ich noch. Hier nochmal die Funktionen und die Procedure:
Delphi-Quellcode:
function ComboTest(const acombo : TCombobox): boolean;
begin result := Length (acombo.Text) > 0; end; function DateEditTest( const aDateEdit : TDateEdit): Boolean; begin result := Length (aDateEdit.Text) >0; // Ein Passender Code end; function MaskEditTest(const aMaskEdit : TMaskEdit): Boolean; begin result := Length (aMaskEdit.text) >0; // und noch ein Code; end;
Delphi-Quellcode:
Wenn ich jetzt alle Pflichteingaben gemacht habe meldet er mir trotzdem einen Eingabefehler......oder hast Du mir eine kleine Falle gestellt Sharky :???:
procedure TForm1.btnspeichernClick(Sender: TObject);
var datum:TDate; zeit:TTime; i: integer; test:boolean; tmpComponent : TComponent; begin for i := 0 to Form1.ComponentCount -1 do begin if (tmpComponent is TMaskEdit) then // Test des MaskEdit begin test := MaskEditTest (tmpComponent as TMaskEdit); end; if (tmpComponent is TDateEdit) then // Test des DateEdit begin test := DateEditTest (tmpComponent as TDateEdit); end; if (tmpComponent is TCombobox) then // Test der ComboBox begin test := ComboTest (tmpComponent as TCombobox); end; end; if not (Test) then begin ShowMessage('Fehler bei der Eingabe'); exit; end; |
Re: Alle Edit-Felder auf Eingaben prüfen
sieht so aus als hättest du vergessen, das "Test" zu initialisieren (test := True;), s. Sharkys Code.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:49 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 by Thomas Breitkreuz