Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

AW: Fehlermeldung: Listenindex überschreitet das Maximum(1)

  Alt 9. Nov 2013, 19:23
Laß das Exit weg.

Stattdessen ein Begin-End um alles (LoadFromFile bis hinter's Edit7.Text) drumrum ist doch auch ganz nett.

Außerdem:
- Warum wird eigentlich scheinbar ein SaveDialog für's Laden verwendet?
- Ich würde dir empfehlen den Komponenten ein paar orgentliche Namen zu geben, damit man weiß was was ist.
- Etwas Fehlerbehandlung kann nie schaden. (angefangen bei Try-Except, über eine Fehlermeldung, wenn die Datei nicht geladen wurde)
- Ich empfehle dir auch mal das Lesen/anschauen eines Tutorial für den Debugger und vorallem dessen Verwendung.

Zitat:
Wie kann ich das beheben?
Denn der Debugger hätte dir genau gezeigt, was da falsch läuft.
Und wenn du beim Testen auch mal den Datei-Dialog mit "Abbechen" oder mit einer zu kleinen Datei ausprobiert hättest, dann wäre dir dann auch das fehlende Begin-End aufgefallen.

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  List: TStrings;
begin
  if OpenDialog1.Execute then begin
    List := TStringList.Create;
    try
      List.LoadFromFile(SaveDialog1.FileName);
      if List.Count = 7 then begin // oder > 6 bzw. >= 7
        Edit1.Text := List[0];
        Edit2.Text := List[1];
        Edit3.Text := List[2];
        Edit4.Text := List[3];
        Edit5.Text := List[4];
        Edit6.Text := List[5];
        Edit7.Text := List[6];
      end else
        ShowMessage('Ungültige Datei.');
    finally
      List.Free;
    end;
  end;
end;

Aber daß es wenigstens einen Ressourcenschutzblock (Try-Finally) gab, welcher auch noch richtig verwendet wurde, ist schonmal ein guter Anfang.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 9. Nov 2013 um 19:32 Uhr)
  Mit Zitat antworten Zitat