AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

2 unerklärliche Fehlermeldungen

Ein Thema von maximus Caesar · begonnen am 14. Jan 2007 · letzter Beitrag vom 14. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#1

2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 12:32
Hallo!
Ich bekomme zwei Fehlermeldungen die ich mir nicht erklären kann. Die erste ist vom Typ "" ist kein Itegerwert, die zweite "ungültige Zeigeroperation", in dieser Reihenfolge.
In diesem Bereich des Programmtextes treten Sie auf:

Delphi-Quellcode:
procedure TKonsole.LadeGrundgebaeude;
var i,i2:Integer;
    a:String;
begin
 try
  GrundGebaeude:=TobjectList.Create;
  Aufteilen:=TAufteilen.Create;
  Form1.Memo1.Clear;
  Form1.Memo1.Lines.LoadFromFile('data/Gebäude.dat');
  for i:=0 to Form1.Memo1.Lines.Count-1 do
  begin
   a:=Form1.Memo1.Lines[i];
   delete(a,3,length(a));
   if a<>'//then begin
     Aufteilen.Explode(Form1.Memo1.Lines[i],',');
     i2:=Grundgebaeude.Add(TGrundgeb.Create);
     (Grundgebaeude.Items[i2] as TGrundgeb).ID:=StrToInt(Aufteilen.Werte[0]); //Byte
     (Grundgebaeude.Items[i2] as TGrundgeb).Name:=Aufteilen.Werte[1]; //String
     (Grundgebaeude.Items[i2] as TGrundgeb).Name2:=Aufteilen.Werte[2]; //String
     (Grundgebaeude.Items[i2] as TGrundgeb).Index:=StrToInt(Aufteilen.Werte[3]);//Byte
   end;
  end;
 finally
  Aufteilen.Free;
 end;
end;
Aufteilen gibt als Werte ein Array[0..3]of String zurück

Die Prozedur wird über einen Timer Aufgerufen, ca. 250 Milisekunden nach Anwendungsstart:
Delphi-Quellcode:
procedure TForm1.TimerStartTimer(Sender: TObject);
begin
  Konsole.LadeGrundgebaeude;
  TimerStart.Enabled:=False;
end;
Hier wird die Konsole erstellt:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  randomize;
  Einstellungen:=TEinstellungen.Create;
  menueaktiv:=False;
  menueBtn.Enabled:=False;
  AnzahlStaedte:=0;
  Ansicht:=0;
  Index:=1;
  AktiveTown:=-1;
  Konsole:=TKonsole.Create;
  ID:=0;
  Laeden:=TObjectList.Create;
  Productions:= TObjectList.Create;
end;
Der Inhalt der Datei ist so aufgebaut:
Delphi-Quellcode:
//Hier kann ein Kommentar stehen
1,Spielwarenladen,Spielwarenfabrik,1
2,Sportgeschäft,Sportindustrie,1
Sieht jemand den Fehler?
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 12:37
Überprüf doch mal per Debugger, in welcher Zeile das auftritt. Die ungültige Zeigeroperation könnte durch den Downcast auf TGrundgeb verursacht werden.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 13:04
Ich vermute den Fehler in TAufteilen.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 13:07
Wo hast du den ungültigen Integer Wert? Enthaält Wert[0] auch einen gültigen Integer?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 13:16
Die Werte hab ich überprüft. Stimmen alle.
Hab jetzt haltepunkte gesetzt, der Fehler muss hier oder dannach auftreten:
(Grundgebaeude.Items[i2] as TGrundgeb).Index:=StrToInt(Aufteilen.Werte[3]); Das Objekt sieht so aus:
Delphi-Quellcode:
type TGrundGeb = class
  ID: Byte;
  Name,Name2: String;
  Index:Byte;
end;
Edit: In der Oben genannten Zeile kann ich auch keinen normalen Integerwert wie z.B. 5 zuweisen. setzte ich den Haltepunkt in diese Zeile, so kommt keine Fehlermeldung, erst dannach.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 13:18
Geh mit dem Evaluator ran.

Ich vermute mal, dass Grundgebaeude.Items[i2] kein TGrundgeb ist und Aufteilen.Werte[3] keine String-Repräsentation eines Integers.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 13:25
WIe funktioniert des mit dem Evaluator? Habs noch nie gemacht....
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 13:28
Haltepunkt setzen, wenn er anhält Strg+F7 setzen und die Variablennamen/Anweisungen eingeben, deren Wert/Ergebnis du wissen willst.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von maximus Caesar
maximus Caesar

Registriert seit: 26. Sep 2004
Ort: Biberach
319 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 13:37
OK, ich habs versucht mit Grundgebaeude.FindInstanceOf(TGrundGeb), bringt mir aber nur "Die aufzurufende Funktion TObjectList.FindInstanceOf wurde vom Linker entfernt"

Grundgebaeude.Items[i2] bringt nur ()

Für Aufteilen.Werte[3]: '1' also eine Stringreräsentation eines Integers
An Aufteilen kanns eigentlich nicht liegen, das verwende ich genau so schon längere Zeit in mehreren Verschiedenen Projekten, wo es auch immer gut funktioniert hat.
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#10

Re: 2 unerklärliche Fehlermeldungen

  Alt 14. Jan 2007, 14:15
Hi,

dann schalt mal die Optimierung aus, dann klappts auch mit dem Evaluator.

Gruss
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  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 04:08 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