![]() |
Abfrage von Eingabefeldern... Problem
Hallo!
Ich mach momentan ein Praktikum und habe zur Aufgabe, ein in Delphi II mit ObjektPascal geschriebenes Programm anzupassen und zu aktualisieren. Unter anderem soll ich eine Abfrage schreiben, die überprüft, ob in einem Eingabeformular alle Felder gefüllt sind. Das krieg ich ja noch hin. Aber ich schaffe es nicht, dass bei Feststellung eines leeren Feldes (was nicht sein darf), wieder zum Eingabeformular zurückgesprungen wird, nachdem der Hinweis "Geben Sie... ein" gekommen ist. Ich hab einfach keine Ahnung, wie das gehen soll. Ich bin nicht so tief drin in Delphi... Ich häng mal den Codeabschnitt an. Hoffentlich könnt ihr mir helfen. Momentan kommt das Hinweisfenster, dass eines der Felder nicht ausgefüllt ist und wenn man auf OK klickt, startet trotzdem normal das eigentliche Programm. Das sollte nicht sein, sondern das Eingabefenster sollte wieder erscheinen oder alternativ das Programm komplett schließen. Und nun der Code:
Delphi-Quellcode:
procedure TFormIdentPunktEingabe.BitBtnOKClick(Sender: TObject);
begin TimerSec.Enabled:=false; Label2.Visible:=false; LabelSekunden.Visible:=false; Label4.Visible:=false; try if (EditIdentPunkt.Text = '') then begin MessageDlg('Bitte Ident Punkt eingeben!', mtWarning, [mbOk], 0); EditIdentPunkt.SetFocus; end else if (EditEIP.Text = '') then begin MessageDlg('Bitte eigene IP-Adresse eingeben!', mtWarning, [mbOk], 0); EditEIP.SetFocus; end else if (EditFIP.Text = '') then begin MessageDlg('Bitte fremde IP-Adresse eingeben!', mtWarning, [mbOk], 0); EditFIP.SetFocus; end else if (EditSubnet.Text = '') then begin MessageDlg('Bitte Subnetmask-Nummer eingeben!', mtWarning, [mbOk], 0); EditSubnet.SetFocus; end else if (EditGateway.Text = '')then begin MessageDlg('Bitte Gateway Nummer eingeben!', mtWarning, [mbOk], 0); EditGateway.SetFocus; end else IdentPunkt:=EditIdentPunkt.Text; IP_CRS:=EditEIP.Text; IP_SPS:=EditFIP.Text; Subnet_CRS:=EditSubnet.Text; Gateway_CRS:=EditGateway.Text; NurTNR:=Label11.Caption; Close; except MessageDlg('Bitte Programm neu starten und alle Felder ausfüllen!', mtWarning,[mbOk], 0); end end; |
Re: Abfrage von Eingabefeldern... Problem
servus
zur Übung gibst du den quellcode mit delphi-Tags ein. so wie der code ist, kann den kein mensch lesen... gruessle |
Re: Abfrage von Eingabefeldern... Problem
Ah, sowas gibts :-D
|
Re: Abfrage von Eingabefeldern... Problem
Wenn du nach der Prüfung ein "Close" machst, kann es auch nicht funktionieren.
Ich vermute, dass du beim "else" das begin..end vergessen hast. |
Re: Abfrage von Eingabefeldern... Problem
Zitat:
in dem Fenster, wo du den Beitrag editierst, ist eine Zeile mit verschiedenen Buttons. einer davon heisst "Delphi-Code", wenn du damit arbeitest, sieht das ergebnis so aus:
Delphi-Quellcode:
gruessle
function test(parameter: string);
begin testcode; end; |
Re: Abfrage von Eingabefeldern... Problem
Hast du nicht geschaut? Ich habs schon gemacht.
Jetzt kannst du ja mal schauen, ob mir zu helfen ist :mrgreen: |
Re: Abfrage von Eingabefeldern... Problem
Dir ist nicht zu helfen. :roll: :zwinker:
Ich habe dir dich schon einen Hinweis gegeben. |
Re: Abfrage von Eingabefeldern... Problem
Oh! :oops:
Vor lauter Tags übersehen. Ich probiers mal. Also Close weglassen... *rumtüdel* Edit: jetzt gehts. Aber ich hab ein weiteres Problem entdeckt: Wenn ich auf Abbrechen gehe, sollte er das gesamte Programm schließen, schließt aber mit Close wieder nur das Eingabefenster. :gruebel: Ich bin echt nicht für Delphi geschaffen, fürcht ich. |
Re: Abfrage von Eingabefeldern... Problem
Close bezieht sich immer nur auf das aktuelle Fenster.
Für deinen Fall benötigst du Application.Terminate. Obwohl ich es geschickter fände, das Eingabe-Fenster Modal (ShowModal statt Show) zu machen und das ModalResult im Hauptfenster zu prüfen und dort das Programm zu beenden. |
Re: Abfrage von Eingabefeldern... Problem
:shock:
Ok. Aber mit Application.Terminate würde es gehen? (Danke übrigens schon mal für die schnelle Hilfe!!) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:38 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