Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Finde Fehler im Quelltext nicht (https://www.delphipraxis.net/130913-finde-fehler-im-quelltext-nicht.html)

Chemiker 15. Mär 2009 17:55


Finde Fehler im Quelltext nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

kann jemand mir sagen was diese Fehlermeldung zu bedeuten hat und wo ich suchen kann um sie abzustellen?
Der Fehler hat sich beim Ausdrucken des Quelltextes irgendwie eingeschlichen. Ich bin aber nicht in der Lage in genau zu lokalisieren.
Wenn ich den Programmlauf anhalte, steht der Cursor an eine unverdächtige Stelle die auch in Ordnung ist.

Bis bald Chemiker

mkinzler 15. Mär 2009 18:10

Re: Finde Fehler im Quelltext nicht
 
Ohne den Code zu kennen, ist es schwer zu helfen

alleinherrscher 15. Mär 2009 18:21

Re: Finde Fehler im Quelltext nicht
 
Sieht nach einer Speicherverletzung aus. Vielleicht ist irgendein objekt nicht richtig erzeugt worden oder du benutzt irgendwelche pointer falsch. Aber mkinzler hat recht, ohne Code, nix zu machen.

RWarnecke 15. Mär 2009 18:23

Re: Finde Fehler im Quelltext nicht
 
Dein Fehler muss ja bei irgendeiner Aktion ausgewführt werden. Setze doch dort einen Breakpoint und gehe dann Schritt für Schritt Deinen Sourcecode durch. Ansonsten, wenn wir keinen Sourcecode haben können wir nur raten :glaskugel:

Chemiker 15. Mär 2009 18:28

Re: Finde Fehler im Quelltext nicht
 
Hallo,

wenn ich das Programm anhalte steht er auf folgende Zeile.

Delphi-Quellcode:
iMaxMessStellen:= 0;
iMaxMessStellen ist als integer deklariert, das ist auch soweit in Ordnung.

Gibt es eine Möglichkeit alle Units eines Projektes zu vergleichen, so das nur die Zeilen angezeigt werden die Unterschiedlich sind?

Bis bald Chemiker

Die Muhkuh 15. Mär 2009 18:32

Re: Finde Fehler im Quelltext nicht
 
Du musst eine Stelle weiter oben angucken. Das Programm hält immer eine Stelle danach.

Klaus01 15. Mär 2009 18:32

Re: Finde Fehler im Quelltext nicht
 
Zitat:

Zitat von Chemiker

Gibt es eine Möglichkeit alle Units eines Projektes zu vergleichen, so das nur die Zeilen angezeigt werden die Unterschiedlich sind?

Bis bald Chemiker

BeyondCompare

Grüße
Klaus

Die Muhkuh 15. Mär 2009 18:34

Re: Finde Fehler im Quelltext nicht
 
Oder WinMerge, wäre kostenlos.

RWarnecke 15. Mär 2009 18:36

Re: Finde Fehler im Quelltext nicht
 
Ich habe es schon öfters gehabt, Delphi hat mit einen Fehler angezeigt und wenn ich dann auf Break geklickt habe, war ich in der Unit zu einer Komponente. Deshalb führe folgende Schritte aus :
Um an diesen Punkt zu kommen, muss ja vorher ein Ereignis (Click auf ein Button oder ein Eintrag aus einer Listbox wird ausgewählt) ausgeführt werden oder nicht ? Wenn ja, dann setze doch dort den Breakpoint und gehe mit Einzelschritt weiter, bis Du den Fehler bekommst. Dann siehst Du eher wo Dein Problem liegt.

Edit: Warum will ich Dateien vergleichen, wenn ich eine Fehler im Sourcecode habe ? :gruebel: Das kommt mir irgendwie so vor, wie mit Kanonen auf Spatzen geschossen.

Chemiker 15. Mär 2009 18:53

Re: Finde Fehler im Quelltext nicht
 
Hallo,

Zitat:

Zitat von RWarnecke
Edit: Warum will ich Dateien vergleichen, wenn ich eine Fehler im Sourcecode habe ? Das kommt mir irgendwie so vor, wie mit Kanonen auf Spatzen geschossen.

das Programm besteht aus grob 100 Units (geschätzt ich habe sie nicht gezählt). Der Fehler tritt im MainForm auf, deswegen kann ich auch nicht den Quelltext senden, dass währe zu umfangreich.
Ich habe vom 26.02.2009 noch eine lauffähige Version, wo der Fehler nicht auftritt, allerdings habe ich seit dieser Zeit wieder dran gearbeitet und würde so meine Vorstellung nur die Änderungen angezeigt bekommen die in diesem Zeitraum durchgeführt worden sind.
Habe mit Historie von der Delphi – IDE schon einige Units durchgearbeitet, dass ist aber sehr mühselig.

Bis bald Chemiker

RWarnecke 15. Mär 2009 19:00

Re: Finde Fehler im Quelltext nicht
 
Hast Du es denn schon so ausprobiert, wie ich es in meinem Beitrag #9 geschrieben habe ?

Chemiker 15. Mär 2009 19:12

Re: Finde Fehler im Quelltext nicht
 
Hallo RWarnecke,

Delphi-Quellcode:
TfrmSPSDAPHauptMenue.FormCreate(Sender: TObject);
Der Fehler kommt schon in dieser Procedure also mehr oder weniger beim Start des Programmes.

Bis bald Chemiker

RWarnecke 15. Mär 2009 19:26

Re: Finde Fehler im Quelltext nicht
 
Und bei welchem Befehl in der Procedure FormCreate tritt der Fehler auf ? Gehe doch die Procedure Schritt für Schritt durch, bis Du an besagter Sourcecodezeile angekommen bist.

craash 15. Mär 2009 21:27

Re: Finde Fehler im Quelltext nicht
 
vielleicht versuchst du etwas aufzurufen/darzustellen was noch nicht erzeugt wurde?

Cyberbob 15. Mär 2009 22:38

Re: Finde Fehler im Quelltext nicht
 
Du veruchst nicht zufällig auf ein Formular oder Objekt zuzugreifen, das beim Create des Hauptformulars noch nicht Existiert? Die Mainform ist eigentlich immer die erste, die erzeugt wird, danach kommt erst alles andere. Von daher kannst du auch nicht auf Dinge zugreifen, die noch nix existieren!
Geh die angegebene Funktion oder Prozedur mal schritt für schritt durch und schau, wann die AV auftritt!

Chemiker 16. Mär 2009 06:39

Re: Finde Fehler im Quelltext nicht
 
Hallo,

danke an alle, habe den Fehler gefunden.

Ich habe blöderweise aus dem Projekt eine Function geändert und in einem anderen Projekt benutzt. Das hatte ich total vergessen, aber mit dem Programm WinMerg wurde mir die Unit angezeigt, dass sie auch geändert worden ist. So konnte ich den Fehler dann Lokalisieren und beseitigen.
Bei der unteren Funktion hatte ich das var vor NeueNode: TTreeNode gelöscht. So ganz Verstehen kann ich das noch nicht, weil ja eigentlich TTreeNode ein Object ist, also wird für mein Verständnis ein Zeiger übergeben.


Delphi-Quellcode:
function TVNodeInsert (Nod: TTreeNodes; var NeueNode: TTreeNode;
                       const strElternKnoten: String; const strKnoten: String;
                       Obj: TObject): boolean; overload;
var
  TempNode: TTreeNode;
begin
  result:= FALSE;             // Es ist kein Knoten im Baum eingetragen worden
  TempNode:= Nod.GetFirstNode; // Root-Knoten in TempNode speichern
  while TempNode <> NIL do    // Solange wiederholen, bis TempNode = NIL ist
  begin
    If (CompareText(TempNode.Text, StrElternKnoten)=0) then
    begin
      if NOT(IstDoppelt(Nod, strKnoten)) then // Ist der Knoten nicht vorhanden
      begin
        // Neuer Knoten eintragen mit einem Object
        NeueNode:= Nod.AddChildObject(TempNode,StrKnoten,Obj);
        Result:= TRUE;                         // Es ist ein Knoten eingetragen
      end;
    end;
    TempNode:= TempNode.getNext;               // Nächster Knoten in TempNode
  end;
end;
Bis bald Chemiker

craash 16. Mär 2009 13:35

Re: Finde Fehler im Quelltext nicht
 
-entfernt, hatte die 2te seite nicht gesehen..-


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz