Autor |
Beitrag |
fuggaz
      
Beiträge: 106
|
Verfasst: Fr 20.03.09 22:53
Hallo,
Ich habe das Problem, dass Delphi nicht meine except-Anweisung ausführt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| bmp.width:=-1; try str_uebersicht.Canvas.CopyRect(RectBmp,Bmp.Canvas,rect(0,0,Bmp.Width-1,Bmp.Height-1)); except ShowMessage('fehlermeldung'); end; |
Es gibt seine eigene Fehlermeldung aus:
"Falscher Parameter"
Wie kann ich das unterbinden?
(Es passiert auch unabhängig von der IDE)
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Fr 20.03.09 23:09
Eine Fehlermeldung zu unterbinden ist ja wohl kaum der richtige Weg...
Finde doch lieber heraus warum an der Stelle überhaupt ein Fehler kommt. Bist du sicher, dass das da passiert? Der Quelltext sieht soweit eigentlich normal aus.
Mögliche Fehlerquellen gibt es viele: - Deine Bmp oder str_uebersicht sind aus einem Grund selbst fehlerhaft.
- Der Quelltext oder ein anderer Quelltext in dem Zusammenhang wird in einem Thread aufgerufen
- Irgendwo wird falscher Speicher überschrieben
Und noch viele mehr. Aber das lässt sich durch Debugging ja herausfinden.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Fr 20.03.09 23:31
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| bmp.width:=-1; try str_uebersicht.Canvas.CopyRect(RectBmp,Bmp.Canvas,rect(0,0,Bmp.Width-1,Bmp.Height-1)); except on E:Exception do ShowMessage(E.Message); end; |
Eine nichts sagende Fehlermeldung ist sowieso meinst wenig hilfreich. Daher hat dir die Fehlermeldung von Delphi wesentlich weitergeholfen als dein "Fehlermeldung".
|
|
Flamefire
      
Beiträge: 1207
Erhaltene Danke: 31
Win 10
Delphi 2009 Pro, C++ (Visual Studio)
|
Verfasst: Sa 21.03.09 12:20
das was ich sehe ist: bmp.width:=-1;
du setzt also seine bitmap auf eine negative breite???
wenn dort noch kein fehler kommt, dann spätestens beim versuch ein rechteck, dass von 0 bis -2 geht aus der bmp zu kopieren
andre mögliche stelle: der fehler kommt schon beim versuch der typconvertierung in ein rechteck:
Delphi-Quelltext 1:
| rect(0,0,Bmp.Width-1,Bmp.Height-1) |
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 21.03.09 16:17
Das hatte ich auch gedacht, aber ich hatte es ausprobiert. Der Code ist bei mir mit Delphi 2006 ohne Fehler durchgelaufen.
Sinn macht es natürlich trotzdem keinen.
|
|
ffgorcky
      
Beiträge: 573
WIN XP/2000 & 7Prof (Familie:Win95,Win98)
|
Verfasst: Sa 21.03.09 22:52
Dort steht doch keine Zuweisung in Form von bmp.width:=-1
sondern er kopiert doch (fast) das gesamte Bitmap - nur ohne die äußerst rechten und unteren Pixel.
Oder verstehe ich das jetzt gerade verkehrt?
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 21.03.09 22:55
ffgorcky hat folgendes geschrieben : | Dort steht doch keine Zuweisung in Form von bmp.width:=-1 |
 fuggaz hat folgendes geschrieben : | Ich habe das Problem, dass Delphi nicht meine except-Anweisung ausführt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| bmp.width:=-1; try str_uebersicht.Canvas.CopyRect(RectBmp,Bmp.Canvas,rect(0,0,Bmp.Width-1,Bmp.Height-1)); except ShowMessage('fehlermeldung'); end; | |
|
|
ffgorcky
      
Beiträge: 573
WIN XP/2000 & 7Prof (Familie:Win95,Win98)
|
Verfasst: Sa 21.03.09 22:59
Ach ja! Stimmt ja!
Das habe ich doch glatt übersprungen beim lesen und mich nur um das CopyRect gekümmert... 
|
|
fuggaz 
      
Beiträge: 106
|
Verfasst: So 22.03.09 12:09
Also, es ist so:
Eben weil die Delphi-Fehlermeldung relativ nichtssagend ist, wollte ich mir eine Fehlermeldung einbauen:
"In Prozedur soundso ist der und der Fehler aufgetreten"
Dann weiß ich direkt in welcher Prozedur das auftritt.
Und Fehler zu vermeiden ist ja logischerweise das Hauptziel, aber man kann ja nicht davon ausgehen, dass ein Programm fehlerfrei ist.
Deshalb möchte ich das gerne einbauen.
Und die Weite setze ich deshalb auf -1, um den Fehler zu simulieren.
Zitat: |
Das hatte ich auch gedacht, aber ich hatte es ausprobiert. Der Code ist bei mir mit Delphi 2006 ohne Fehler durchgelaufen.
|
Das finde ich interessant^^
|
|
jaenicke
      
Beiträge: 19312
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: So 22.03.09 15:59
|
|
fuggaz 
      
Beiträge: 106
|
Verfasst: So 22.03.09 17:10
Ich hab das Problem gefunden.
Die Fehlermeldung kommt bei mir schon wenn ich bmp.width auf -1 setze.
Deshalb kommt Delphi natürlich erst gar nicht in meinen except-Teil.
Dann kann ich wohl davon ausgehen, dass es irgendwoanders abstürzen wird.(was ich nicht hoffen will^^).
Trotzdem interessant, dass es bei neueren Version klappt.
Danke für eure Antworten:-)
Edit:
Achso, To-Do Liste gibt es bei mir nicht.
Benutze Delphi7.
Dafür hab ich Notepad^^
|
|
|