Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.119 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Problem mit aktuellen Parameter

  Alt 26. Mai 2007, 12:59
Moin Anna,

ich fange mal von oben an

OpenDialog1.Execute; Du fragst den Rückgabewert nicht ab. Wird der Dialog abgebrochen, wird so anschliessend trotzdem versucht die, nicht ausgewählte, Datei zu laden, was dann in einem Fehler mündet.
So
if not OpenDialog1.Execute then exit; wird die Prozedur verlassen, wenn keine der Dialog abgebrochen wird.

Zu dem Erzeugen der Stringliste fehlt die zugehörige Freigabe. So wie es jetzt ist, wird ein Speicherleck produziert.
So kannst Du das verhindern, selbst wenn innerhalb der Prozedur eine Execption auftritt
Delphi-Quellcode:
F := TStringList.Create;
try
// Der Rest der Prozedur
finally
  FreeAndNil(F); // Oder F.free;
end;
Die Kapselung des Hauptteils in try/except unterdrückt zwar eventuell auftretende Exceptions, aber die sollten da, wenn das Programm dort ansonsten fehlerfrei ist, eh' nicht auftreten. Am Besten lässt Du try/except dort weg.

Hier
Rows[i].CommaText := StrtoInt F[i+2]; musst Du mal schlicht das StrToInt weglassen, denn CommaText und F[i+2] sind beides Strings. Da muss nichts umgewandelt werden.
Damit wäre dann auch die Fehlermeldung des Compilers behoben.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat