AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Fehlermeldung wenn keine Showmessage?
Thema durchsuchen
Ansicht
Themen-Optionen

Fehlermeldung wenn keine Showmessage?

Ein Thema von loirad · begonnen am 24. Jun 2012 · letzter Beitrag vom 25. Jun 2012
Antwort Antwort
Seite 1 von 2  1 2      
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#1

Fehlermeldung wenn keine Showmessage?

  Alt 24. Jun 2012, 21:06
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:
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!');
Das Kuriose daran: Der Fahler tritt nur auf, wenn ich die showmessage rausnehme!

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.
Angehängte Grafiken
Dateityp: jpg 2012-06-24_205755.jpg (6,2 KB, 31x aufgerufen)
Angehängte Dateien
Dateityp: zip Kalender.zip (282,3 KB, 8x aufgerufen)
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.581 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Fehlermeldung wenn keine Showmessage?

  Alt 24. Jun 2012, 22:02
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.
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#3

AW: Fehlermeldung wenn keine Showmessage?

  Alt 24. Jun 2012, 22:23
Zitat:
Diese Fehlermeldung tritt in folgendem Abschnitt auf:
Und wo tritt nun der Fehler auf?
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.
{$R+} aka {$RANGECHECKS ON} (alt / neu)

und eventuell auch mal die {$Q+} aka {$OVERFLOWCHECKS ON}



Zitat:
Form1.Termine[length(Form1.Termine)]
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (24. Jun 2012 um 22:43 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#4

AW: Fehlermeldung wenn keine Showmessage?

  Alt 24. Jun 2012, 23:30
Gibt es davor evtl. eine if-else abfrage?
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Fehlermeldung wenn keine Showmessage?

  Alt 25. Jun 2012, 00:22
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.056 Beiträge
 
Delphi 12 Athens
 
#6

AW: Fehlermeldung wenn keine Showmessage?

  Alt 25. Jun 2012, 02:22
[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 Delphi-Referenz durchsuchenTComponent.SetFocus oder Delphi-Referenz durchsuchenTForm.ActiveControl auch noch die erste Fehlerstelle angeben, bzw rote Fehlermarkierungen kommen auch immer gut an.
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.

Tipp: Es gibt einen TDateTimePicker, welchen man Datums- und Zeitangaben verwenden kann.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
knochen

Registriert seit: 26. Aug 2009
81 Beiträge
 
Delphi 2006 Professional
 
#7

AW: Fehlermeldung wenn keine Showmessage?

  Alt 25. Jun 2012, 09:27
with Form1.Termine[length(Form1.Termine)] do -->
with Form1.Termine[High(Form1.Termine)] do
A fool with a tool remains a fool.
  Mit Zitat antworten Zitat
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#8

AW: Fehlermeldung wenn keine Showmessage?

  Alt 25. Jun 2012, 10:23
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

Ja vielen Dank nochmal! Nach wie Vor die beste Community die ich kennne!

Liebe Grüße
loirad
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#9

AW: Fehlermeldung wenn keine Showmessage?

  Alt 25. Jun 2012, 10:27
Vielen Dank! Das war tatsächlich der Fehler
Anscheinend hast Du #3 nicht gelesen, sonst hättest Du das schon gestern Abend gewusst
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
loirad

Registriert seit: 25. Nov 2009
135 Beiträge
 
Delphi 6 Professional
 
#10

AW: Fehlermeldung wenn keine Showmessage?

  Alt 25. Jun 2012, 10:41
@DeddyH: Ich habe mir die Zuschriften heute früh von unten nach oben durchgelesen -> als erstes von knochen und siehe da: Lösung gefunden!
Wer Fehler findet darf sie behalten!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:48 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