Autor Beitrag
ene
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mo 26.03.07 09:18 
Moin,

ich habe eine Anwendung, die sowohl als Konsole als auch als graphische Anwendung arbeitet (ne Menge als). Dort hatte ich zuerst in einer GlobalVars-Unit mehrere Arrays (Array Of Array Of Integer) und ähnliches. Zu dem habe ich noch das hier

ausblenden Delphi-Quelltext
1:
2:
Type TRGBTripleArray = Array [WORD] Of TRGBTriple;
Type pRGBTripleArray = ^TRGBTripleArray;


Und irgendwie machen mir die Arrays Probleme, mal läuft gar nix mehr, mal läuft eine Procedure durch und endet mit einem Write Of Address 00000000 auf und ich hab keinen Plan, wodran es liegen könnte. Ich denke, das ich da etwas generell falsch mache, nur weiß ich nicht was. Bisher konnte ich mich immer noch durch umstellen retten. So gibt es inzwischen eine GlobalTypes-Unit, in der die Arrays als Typen erstellt werden und die Variablen stehen dann entweder direkt in der Unit oder in der GlobalVars.

Ich verstehs einfach nicht, muss man bei dynamischen Arrays etwas besonderes beachten? Hat hier jemand einen Hinweis für mich?

Vielen Dank im Vorraus und bei Fragen, einfach stellen ;)
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 26.03.07 09:22 
schalte mal die Bereichsprüfung ein und schaue, was passiert? Meistens ist es so, dass man bei einem dynamische Array über die Grenzen schreibt und damit was anderes abschießt, was dann den Error bringt!

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
ene Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mo 26.03.07 09:29 
Danke schon mal für die Antwort, kannst du mir kurz erklären, wie ich das mache? In der ProgrammUnit steht ja schon {$R+ *.res} oder muss das dann in alle Unit's, die geprüft werden sollen?
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 26.03.07 09:33 
Projekt optionen compiler bereichsprüfung

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
ene Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mo 26.03.07 09:34 
Hab ich gemacht, der Code wird kompiliert und die Fehlermeldung bleibt die Gleiche :( Also leider nichts, was mir Aufschluss gibt, woher es kommt.


Edit: Ich bekomme jetzt eine Fehlermeldung, wenn ich überprüfe, ob meine x,y Werte überhaupt im Array liegen:


If (x >= Low(Mitte)) And (x <= High(Mitte)) And (y >= Low(Mitte[x])) And (y <= High(Mitte[x])) Then Result:= Mitte[x,y,z] Else Result:= 0;

Das versteh ich noch weniger.


Zuletzt bearbeitet von ene am Mo 26.03.07 09:45, insgesamt 1-mal bearbeitet
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mo 26.03.07 09:43 
(a) Projekt neu erzeugen
(b) mit den 2 Zeilen Quelltext wird Dir heirt niemand helfen können, es sei denn jemand hat eine superneune, extrastarke Glaskugel :wink:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!
ene Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mo 26.03.07 10:21 
a) Bringt mir jetzt eine Fehlermeldung in einer GLScene Unit. Da werde ich mal in deren NG fragen.
b) Dachte ich mir schon, aber wenn ich alles poste, muss ich wohl mehrere Posts machen, denn dafür ist es zu viel Quelltext und leider darf ich auch nicht alles veröffentlichen ;) Aber ich denke, ich bin etwas weiter gekommen. Ansonsten melde ich mich nochmal.

Danke Kroko
ene Threadstarter
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 779
Erhaltene Danke: 1

Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
BeitragVerfasst: Mi 28.03.07 07:20 
Wollt nur kurz bescheid geben, dass sich das Problem erledigt hat. Es lag an einem falschen Aufruf eines Arraywertes, den es nicht gibt :-/ Aber vielen Dank!
Kroko
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1284

W98 W2k WXP
Turbo D
BeitragVerfasst: Mi 28.03.07 07:43 
user profile iconKroko hat folgendes geschrieben:
schalte mal die Bereichsprüfung ein und schaue, was passiert? Meistens ist es so, dass man bei einem dynamische Array über die Grenzen schreibt und damit was anderes abschießt, was dann den Error bringt!


sage ich doch, :wink:

_________________
Die F1-Taste steht nicht unter Naturschutz und darf somit regelmäßig und oft benutzt werden! oder Wer lesen kann, ist klar im Vorteil!