Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi "Fehler bei Bereichsprüfung"?!?!?!? (https://www.delphipraxis.net/28358-fehler-bei-bereichspruefung.html)

Rakshasa 23. Aug 2004 17:39


"Fehler bei Bereichsprüfung"?!?!?!?
 
Hi!!

Ich habe mein Windows-System neu installieren müssen und deshalb auch Delphi 7 Prof. Wenn ich jetzt mein aktuelles Projekt lade, wird ständig ein "Fehler bei Bereichsprüfung" angezeigt, dieses Projekt lief aber vor der Neuinstallation absolut fehlerfrei! Erst jetzt taucht dieser dämliche Fehler auf, auch das Setzen von {$R-} brachte nichts.

Total verrückt ist, dass dieser Fehler auch noch variiert; auf einem anderen Computer (auch Win XP) kommt der selbe Fehler ebenfall, allerdings an anderer Stelle. Andere "Bereichprüfungs"fehler werden gar nicht gemeldet.

Weiß jemand Rat??? Bin echt verzweifelt!!!

roderich 23. Aug 2004 17:58

Re: "Fehler bei Bereichsprüfung"?!?!?!?
 
hallo Rakshasa,

kannst Du etwas mehr Infos geben ?
Ich glaube kaum, daß der Fehler bereits beim "Laden" des Projekts auftritt, wohl eher bei der Ausführung.

Wenn wirklich ein Bereichsüberlauf auftritt, wird ein {$R-} nur dafür sorgen, daß Dein Programm woanders verrückt spielt durch z.B. einen überschriebenen Speicherbereich, deshalb würde ich lieber den Fehler finden, anstatt per Compilerswitch zu unterdrücken.

Wenn Du das Projekt in der IDE ausführst, sollte dich der integrierte Debugger an die Stelle setzen, wo der Fehler auftritt. Tut er das denn ?

Gruß
Roderich

Rakshasa 23. Aug 2004 21:38

Re: "Fehler bei Bereichsprüfung"?!?!?!?
 
Hm, ok werde mal versuchen etwas Klarheit reinzubringen ... :)

Also der Fehler tritt natürlich nach dem Compilieren & Ausführen des Progs auf, insbesondere bei der TMS AdvListview. Hier ist vor allem die Eigenschaft "Autosize" der Column[x] anscheinend verantwortlich. Die Funktion von "AutoSize" ist die selbe wie bei der normalen ListView. Wenn "Autosize = true" gesetzt ist, kommt der Fehler. Den Quellcode habe ich durchsucht, kann keinen Fehler finden.

Das komische ist halt, dass z.B. beim Klicken auf ein Item dieser Fehler kommt, bei einigen dieser AdvListviews ist's sogar so schlimm, dass das Projekt einen Fehler anzeigt, wenn es gestartet wird. Bei einigen allerdings nicht, da taucht der fehler erst auf, wenn ich auf's ListView klicke.... auch wenn diese ListViews die selben Eigenschaften gesetzt haben wie die anderen! Völliges Chaos und bar jeder Logik!

Das absolut unverständliche ist halt: Es hat ja alles super funktioniert - bis ich Delphi neu installiert habe! Erst danach ist der Fehler aufgetaucht, geändert habe ich nix!

Wenn ich die Laufzeitfehler verfolge, springt Delphi in völlig wiedersinnige Proceduren der Unit Forms, Classes usw. dass die AdvListView schuld (?) ist, habe ich per Zufall herausgefunden...


Hilfe!!!!!!!!!!!! :-(


P.S.: Noch was komisches: Wenn ich das Projekt compiliert und ausgeführt habe (innerhalb der IDE) und danach Delphi beende, stürzt es ab mit irgendeiner Zugriffsverletzung ... DAS hat es vorher auch nicht gemacht ...


P.P.S: Das Problem taucht nur beim wichtigen Projekt auf, wenn ich ein neues mit der selben ADVListView erstelle, passiert gar nix ... (ergo keine Fehler)

Jemand eine Idee??

Ich wein gleich ... ! :-)

Rakshasa 23. Aug 2004 22:25

Re: "Fehler bei Bereichsprüfung"?!?!?!?
 
So, hier habe ich die Procedure, auf die Delphi mit dem genannten Fehler springt:

Code:
Unit CommCtrl;

function ListView_GetCheckState(hwndLV: HWND; i: Integer): UINT;
begin

  Result := (SendMessage(hwndLV, LVM_GETITEMSTATE, i, LVIS_STATEIMAGEMASK) shr 12) - 1 ;
end;
???????

Phoenix 23. Aug 2004 22:31

Re: "Fehler bei Bereichsprüfung"?!?!?!?
 
Volltreffer.

Bei WindowsXP wurde die Grösse des Handles auf Controls geändert (ist glaube ich jetzt 2 Byte grösser als es noch bei Win2k der Fall war).

Demnach taucht der Fehler meistens beim neuzeichnen des Controls auf, wenn direkt auf die Windows-Messages zugegriffen wird, und das passiert hier.

Eine Lösung habe ich Dir nicht spontan. Ich muss mal morgen im Büro fragen, wir hatten das (oder nur ein ähnliches?) Problem in einem eigenen Control auch mal gehabt. Vielleicht habe ich da was für Dich.

Rakshasa 23. Aug 2004 22:45

Re: "Fehler bei Bereichsprüfung"?!?!?!?
 
Hi!!

Das wäre echt super ... momentan bin ich aber wieder mal am ausrasten, weil der Fehler plötzlich NICHT mehr auftritt. Was ich gemacht habe? Das Projekt ein paar mal gestartet und den Fehler bestaunt, Delphi wieder beendet.


Na, mal sehen wie's nach dem Neustart von Windoof aussieht!

Aber für eine Lösung wäre ich dir escht dankbar!!!!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:49 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