AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Alle Edit-Felder auf Eingaben prüfen
Thema durchsuchen
Ansicht
Themen-Optionen

Alle Edit-Felder auf Eingaben prüfen

Ein Thema von Ati · begonnen am 21. Dez 2005 · letzter Beitrag vom 3. Jan 2006
Antwort Antwort
Seite 4 von 4   « Erste     234   
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#31

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 22. Dez 2005, 11:14
Zitat von Ati:
... Auch auf die Gefahr hin das sich hier einige gleich ausschütten werden vor Lachen anbei mal mein gesamter Quelltext.
Wer lacht sollte sich daran erinnern wie er angefangen hat

So, jetzt zu dem "Problem"
Das mit dem AfterPost kann natürlich nicht gehen da Du das Query ja ganz anders benutzt als ich dachte (ist aber auch gut so).

Die Ereignisse BeforPost, AfterPost usw. würde nur ausgelöst werden wenn Du über eine TDataSource irgendwelche DBxxxx-Komponenten verwendest oder im Code so etwas stehen hast:
Delphi-Quellcode:
begin
  Query1.Edit
  Query1.FieldByName ('blubb').AsString := Edit1.Text
  Query1.FieldByName ('meow').AsInteger := 0815;
  Query1.Post;
end
Du arbeitest aber "direkt" mit SQL-Kommandos (INSTERT,UPDATE).

Bei dir müsstest Du also nur, wie von mir vorgeschlagen eine Funktion schreiben welche die Fehler prüft.
Wenn diese TRUE liefert führst Du deinen Code im OnClick des Buttons aus und wenn FALSE kommt dann gibst Du die Meldung aus.

Ich würde den ganzen Code zum Eintragen der Daten aber auch noch in eine Funktion auslagern.
So das Du diesen Pseudocode hast:
Delphi-Quellcode:

procedure TForm1.btnspeichernClick(Sender: TObject);
begin
  if (EingabeTest) then
  begin
    SpeicherenNeuenDatensatz;
  end
  else
  begin
    Fehlermeldung;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Ati

Registriert seit: 16. Okt 2003
Ort: Gelsenkirchen
406 Beiträge
 
Delphi 3 Professional
 
#32

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 22. Dez 2005, 11:46
Es funktioniert mit einer kleiner Ausnahme. Ich benutze zur Datumseingabe das TDateEdit der RXLib. Hier ist Standardmäßig als Text " . . " hinterlegt. Bei der Prüfung der Textlänge >0 zählt er (so vermute ich jedenfalls) die Punkte. D.h. wenn alle anderen ausgefüllt sind aber die Terminangaben fehlen so nimmt er den Datensatz. Obwohl die Felder in der DB als NotNull deklariert sind (sollte dann nicht wenigstens hier Firebird meckern??). Ich benutze diese Objekte, da ich sie einfach "Benutzerfreundlich" finde und somit ein Datumsformat erzwinge.


P.S. selbst wenn ich die Prüflänge auf >2 setze nimmt er eine leeres TDateEdit-Feld.
Ich weiß das ich nichts weiß

Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#33

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 23. Dez 2005, 08:28
Hai Ati,

du könntest mal prüfen was genau in einem lehren TDateEdit steht. Im notfall versuche in einem try-except Block eine Umwandlung in ein TDate versuchen. Wenn diese fehlschlägt gibt deine Testfunktion ein False zurück.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Ati

Registriert seit: 16. Okt 2003
Ort: Gelsenkirchen
406 Beiträge
 
Delphi 3 Professional
 
#34

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 3. Jan 2006, 07:36
Hai Sharky,

nicht das Du denkst ich habe Deinen Tip unter dem Tisch fallen lassen. Hier mal meine Prüffunktion für das Datumsfeld:
Delphi-Quellcode:
function DateEditTest( const aDateEdit : TDateEdit): Boolean;
var dat:Tdate;
begin
  result:=true;
  try
   dat:= strtodate(aDateEdit.Text);
  except
   result:=false;
  end;
end;
Wenn man das eleganter lösen kann bitte ich um Korrektur!!!

Ati
Ich weiß das ich nichts weiß

Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#35

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 3. Jan 2006, 07:41
Zitat von Ati:
... nicht das Du denkst ich habe Deinen Tip unter dem Tisch fallen lassen.
Das wäre auch schlecht. Irgendwann liegen bei dir lauter Tips unter dem Tisch und Du kannst dich nicht nicht mehr daran setzen

Alternativ könntest Du noch prüfen ob in der Eigenschaft .Text (wenn es die bei dem DateEdit gibt) etwas eingetragen wurde.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Ati

Registriert seit: 16. Okt 2003
Ort: Gelsenkirchen
406 Beiträge
 
Delphi 3 Professional
 
#36

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 3. Jan 2006, 07:45
Das habe ich ja als erstes versucht. Nur vermute ich das die Pünktchen als Eingabe gewertet werden.
Aus Deiner Antwort schliesse ich aber das Du mit meiner aktuellen Lösung "zufrieden" bist.

Ati
Ich weiß das ich nichts weiß

Sokrates
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#37

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 3. Jan 2006, 07:52
Zitat von Ati:
... Nur vermute ich das die Pünktchen als Eingabe gewertet werden.
In der Theorie müsstest Du das so prüfen können:
Delphi-Quellcode:
function DateEditTest( const aDateEdit : TDateEdit): Boolean;
begin
  result := StringReplace(aDateEdit.Text,' ','',[rfReplaceAll]) <> '..';
end;
Aber ich finde das mit dem try-except besser da so auch falsch Eingaben abgefangen werden.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Ati

Registriert seit: 16. Okt 2003
Ort: Gelsenkirchen
406 Beiträge
 
Delphi 3 Professional
 
#38

Re: Alle Edit-Felder auf Eingaben prüfen

  Alt 3. Jan 2006, 07:53
Danke für die Blumen.
Ich weiß das ich nichts weiß

Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 4   « Erste     234   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.
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