![]() |
Fehlermeldung wenn keine Showmessage?
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo liebe Community,
ich habe (mal wieder) ein Problem. Ich arbeite an einem Kalender, in den man Termine eintragen kann. Soweit so schön. Jedoch erhalte ich eine Fehlermeldung (siehe Anhang). Diese Fehlermeldung tritt in folgendem Abschnitt auf:
Delphi-Quellcode:
Das Kuriose daran: Der Fahler tritt nur auf, wenn ich die showmessage rausnehme!
if (length(VonDatum.Text)>=8) and (length(VonZeit.Text)>=3) and
(Beschreibung.Text<>'') and (((Geburtstag.Checked=true) and (length(Geburtsjahr.Text)=4)) or (Geburtstag.Checked=false)) then begin Form3.Hide; vDatum:=VonDatum.Text; bDatum:=BisDatum.Text; vZeit:=VonZeit.Text; bZeit:=BisZeit.Text; //showmessage(''); setlength(Form1.Termine,length(Form1.Termine)+1); with Form1.Termine[length(Form1.Termine)] do begin VonTag:=T(vDatum); VonMonat:=M(vDatum); VonJahr:=J(vDatum); if bDatum<>'' then begin BisTag:=T(bDatum); BisMonat:=M(bDatum); BisJahr:=J(bDatum); end; Wiederholung:=Form3.Wiederholung.ItemIndex; Beschreibung:=Form3.Beschreibung.Text; end; Beschreibung.Clear; BisDatum.Clear; BisZeit.Clear; Geburtsjahr.Text:='Geburtsjahr'; Geburtsjahr.Font.Color:=clGray; Geburtstag.Checked:=false; VonDatum.Clear; VonZeit.Clear; Wiederholung.ItemIndex:=-1; Form1.Show; end else showmessage('Fehler! Bitte alle Felder korrekt ausfüllen!'); Woran liegt das? Kann mir da jemand helfen? Application.ProcessMessages oder sleep hilft nichts. Liebe Grüße loirad PS.: Anbei das Projekt für besseres Verständnis. |
AW: Fehlermeldung wenn keine Showmessage?
Das kann ich weder mit aktuellen Delphiversionen noch mit Delphi 7 nachvollziehen. Was genau machst du im Programm, damit der Fehler passiert?
Und am besten häng die Exe, bei der der Fehler passiert, auch an (wenn ich das richtig verstehe, muss ja das ShowMessage raus, das in deinem Anhang noch drin ist). Zudem kannst du FastMM4 im FullDebugMode einbinden. Dann siehst du vielleicht wo der Fehler auftritt. |
AW: Fehlermeldung wenn keine Showmessage?
Zitat:
Welche Codezeile? [add] Tipp: Geh in die Projektoptionen und aktiviere die Bereichprüfung. Du hast dir einen Pufferüberlauf (Buffer Overrun) gebaut. Oder im Quellcode.
Delphi-Quellcode:
(alt / neu)
{$R+} aka {$RANGECHECKS ON}
und eventuell auch mal die
Delphi-Quellcode:
{$Q+} aka {$OVERFLOWCHECKS ON}
Zitat:
|
AW: Fehlermeldung wenn keine Showmessage?
Gibt es davor evtl. eine if-else abfrage?
|
AW: Fehlermeldung wenn keine Showmessage?
Die Tage brauchst du nicht freizugeben, das übernimmt Kalender. Wenn ich das richtig sehe, gehört das setlength(Termine, 0) nur nach TForm1.FormDestroy. So ist es bei mir durchgelaufen. Deinen Fehler konnte ich nicht reproduzieren, weil er immer sagt, es seien nicht alle Felder ausgefüllt.
|
AW: Fehlermeldung wenn keine Showmessage?
[Hinweis]
Einen Buffer-Overrun bemerkt man nicht immer sofort, es kommt immer darauf an ob zufällig Speicher an der Stelle vorhanden ist und ob und mit was er sonst noch belegt ist also ob/was dort überschrieben wird. Drum bemerkt auch nicht jeder sofort den Fehler .... außer man schaltet entsprechende Prüfcodes ein, bzw. baut selber ordentliche Prüfungen ein. Das mit dem nicht richtig ausgefüllt ... Die GUI ist schon sehr unintuitiv, da wäre es besser gewesen du hättest alles einzeln geprüft und dem Benutzer ordentliche/aussagefähige Fehlermeldungen rausgegeben. Man kann mit ![]() ![]() Da ich bei Geburtstag das Alter eintragen wollte, denn wenn schon was drin steht, sieht man deinen "Hinweis" nicht mehr, bin ich erst beim Debuggen, also dem Prüfen was dein IF von mir will, auf die 4-Stellingkeit gekommen. :oops: Tipp: Es gibt einen TDateTimePicker, welchen man Datums- und Zeitangaben verwenden kann. |
AW: Fehlermeldung wenn keine Showmessage?
with Form1.Termine[length(Form1.Termine)] do -->
with Form1.Termine[High(Form1.Termine)] do |
AW: Fehlermeldung wenn keine Showmessage?
Hallo!
Erstmal ein großes Dankeschön an Alle, die geantwortet haben! @jaenicke: Ich habe Delphi 6 und es läuft nicht durch, wenn ich ein neuen Termin anlegen will! @Popov: Nein! @Bjoerk: Hat nichts gebracht aber trotzdem Danke! @himitsu: Das mit dem TDateTimePicker werde ich mir mal ansehen und die roten Umrandungen auch mal überlegen! @knochen: Vielen Dank! Das war tatsächlich der Fehler :thumb: Ja vielen Dank nochmal! Nach wie Vor die beste Community die ich kennne! Liebe Grüße loirad |
AW: Fehlermeldung wenn keine Showmessage?
Zitat:
|
AW: Fehlermeldung wenn keine Showmessage?
@DeddyH: Ich habe mir die Zuschriften heute früh von unten nach oben durchgelesen -> als erstes von knochen und siehe da: Lösung gefunden!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:31 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