Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Sicherung (Edit Feld-Button) (https://www.delphipraxis.net/104917-sicherung-edit-feld-button.html)

xXcomputerrookieXx 12. Dez 2007 19:48


Sicherung (Edit Feld-Button)
 
Hallöle!

Ich brauch mal eure Hilfe!Bei unserem Schulprojekt fehlt noch eine wichtige Sache und zwar ein Teil der Sicherung für Edit-Felder im Programm.Wenn die Edit Felder leer sind,dann kommt ja der Fehler : '' ist kein Integerwert,sobald man den Berechnen Button klickt.

Die bisherige Sicherung:

Delphi-Quellcode:
//  Sicherungen der einzelnen EDIT-Felder

procedure TFRM_Rentenversicherungsnummer.EDT_Z1Exit(Sender: TObject);
begin

  //Fehler keine Eingabe
  if EDT_Z1.text=''
    then
      begin
        showmessage('Ihre Eingabe fehlt! Bitte geben sie hier eine Ziffer ein!');
        EDT_Z1.setfocus;
        exit; //sonst Fehler beim Lesen aus leeren Editfeldern in der
               //nächsten if-Abfrage
      end;

  //Fehler keine Ziffer
  if (ord(EDT_Z1.text[1])>57) or (ord(EDT_Z1.text[1])<48)
    then
      begin
        showmessage('Falsche Eingabe, bitte hier eine Ziffer eingeben!');
        EDT_Z1.text := '';
        EDT_Z1.setfocus;
      end;

end;
Also wir wollen noch eine Sicherung haben,die verhindert das gerechnet wird wenn alle 11 edit felder leer sind eine showmessage kommt


gruß

andre

Mooshead 12. Dez 2007 19:54

Re: Sicherung (Edit Feld-Button)
 
schreibe eine eigene prozedure z.B. exit_editfeld(Sender:TObject); und dann weist du allen Edit-Feldern bei OnExit diese Prozedure zu.

Mit with Sender as TEdit do... kannst du dann deinen algorithmus verwenden

xXcomputerrookieXx 12. Dez 2007 20:31

Re: Sicherung (Edit Feld-Button)
 
das problem is nur das wir für delphi nur das wichtigste gelernt haben,unsere kenntnisse sind sehr gering...bis jetzt hab ichs nicht geschafft...

xXcomputerrookieXx 12. Dez 2007 20:38

Re: Sicherung (Edit Feld-Button)
 
Liste der Anhänge anzeigen (Anzahl: 1)
also was wir bräuchten wär ne recht einfache methode,hoffe die gibt es


--> wenn ihr das programm runtergeladen habt,gebt erstmal z.B. 19735864G73 ein (das is eine Rentenversicherungsnummer wie sie im Programm eingegeben werden muss/das Programm errechnet dann von der Nummer die Prüfziffer)

Nun gebt mal in die ersten beiden Edit Felder Zahlen ein und berechnet dann...anstatt der Meldung wollen wir eine showmessage und natürlich für alle anderen felder auch

bitsetter 12. Dez 2007 23:54

Re: Sicherung (Edit Feld-Button)
 
Hi,

benutzt doch einfach die Komponente TMaskEdit, unter der Eigenschaft EditMask könnt Ihr voreinstellen was der Benutzer eingeben darf oder auch verhindern, dass nichts in den Feldern steht.

gmc616 13. Dez 2007 02:49

Re: Sicherung (Edit Feld-Button)
 
Was verstehst du unter "Sicherung"?

Sicher gehen, dass alle Edit-Felder Zahlen enthalten, oder
dass bei falscher Eingabe der alte Wert zurück gesichert, also wieder in das Feld geschrieben wird.

Also für die Problematik '' ist kein Integerwert empfiehlt sich evtl. StrToIntDef
Für das Sichern der korrekten Werte könnte man ein Array [0..ANZ_EDITFELDER] of string nehmen.

Delphi-Quellcode:
// Alles ungetestet !!

const
  ANZ_EDITFELDER := 10; // Weils ja 11 Felder sind und wir bei 0 anfangen zu zählen

var
  SaveValues : array [0..ANZ_EDITFELDER] of string;

...

procedure TFRM_Rentenversicherungsnummer.FormCreate (Sender: TObject);
begin
  for i:=0 to ANZ_EDITFELDER do
    SaveValues[i] := '';
end;

procedure TFRM_Rentenversicherungsnummer.EDT_Z1Exit(Sender: TObject);
var
  nTestInt : integer;
begin
  nTestInt := StrToIntDef(EDT_Z1.text,-1);

  if nTestInt = -1 then
  begin
    ShowMessage('Bitte Zahl eingeben');
    EDT_Z1.text := SaveValues[1];
  end elsebegin
    SaveValues[1] := EDT_Z1.text; // für EDT_Z0 -> SaveValues[0] ; für EDT_Z8 SaveValues[8]
  end;
end;
Wenn man das ganze noch mit Mooshead's und bitsetter's Vorschlägen kombiniert wird da ne ganz runde Sache draus ... denke ich.

Ich frage mich allerdings, wie man verhindern will, dass die TMaskEdit's leer sind, denn Defaultwerte sind in dem Fall bestimmt ungünstig.

bitsetter 13. Dez 2007 07:56

Re: Sicherung (Edit Feld-Button)
 
Hallo,
Zitat:

Zitat von gmc616
Ich frage mich allerdings, wie man verhindern will, dass die TMaskEdit's leer sind

Delphi-Quellcode:
EditMask:= '!9;1;0';
Erlaubt nur Zahlen zwischen 0- 9 und die 0 ist voreingestellt worden. Der Benutzer wird es hiermit nicht schaffen das Feld zu leeren oder Buchstaben einzugeben.


Zitat:

Zitat von gmc616
denn Defaultwerte sind in dem Fall bestimmt ungünstig.

Das Ausfüllen der Felder muss der Benutzer natürlich selber machen.

gmc616 13. Dez 2007 11:25

Re: Sicherung (Edit Feld-Button)
 
Nein. "Muss" er (also der Benutzer) in diesem Fall eben nicht, da der voreinstellte Wert "0" ist.
Er kann also auf den "Prüfsummen berechnen"-Button klicken, ohne irgendeine Eingabe zu machen und die Routine funktioniert.

Ähm, @xXcomputerrookieXx: Die "0" wird doch als korrekte Eingabe gewertet, oder?

Ich denke es ist eine Frage der Programmierphilosophi.
Meiner Ansicht nach müssen beim Programmstart sämtlich Felder leer sein, damit der Benutzer gezwungen wird die richtigen Werte einzugeben. Voreinstellungen mache ich nur, wenn ich sicher bin, dass diese korrekt sind.

Aber vielleicht sehe ich das auch zu verbohrt.


:cheers:


EDIT: Wieso ist mein Code oben eigentlich nicht ge-highlight-et :gruebel:

xXcomputerrookieXx 13. Dez 2007 13:20

Re: Sicherung (Edit Feld-Button)
 
Liste der Anhänge anzeigen (Anzahl: 1)
hi!

ja die '0' ist eine gültige eingabe
in den felder 1-8 sowie 10+11 können alle ziffern verwendet werden.
das 9. feld ist ja eine ausnahme,da dort ein buchstabe eingegeben wird,der dann ja mithilfe des ASCII-Code umgewandelt wird und durch eine etwas komplizierte rechung mit quersummen etc. kommt am ende dann die prüfziffer raus.

ich hab eure vorschläge an sich verstanden was dann passiert,allerdings hab ich schwierigkeiten das dann in den momentanen quelltext einzufügen.


EDIT: quelltext nun als datei,hoffe is richtig

Sharky 13. Dez 2007 13:49

Re: Sicherung (Edit Feld-Button)
 
Zitat:

Zitat von xXcomputerrookieXx
.... ich stell mal den ganzen kram rein und guckt dann nochmal nach...

Hai xXcomputerrookieXx,

könntest Du den Quellcode bitte als Datei anhängen und dann aus dem Posting entfernen?
So scrollt man sich ja die Flossen wund ;-)

Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr.
Seite 1 von 2  1 2      

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