Hallo liebe DPler,
Dies ist mein Code:
Delphi-Quellcode:
//Bilder laden
procedure TForm1.btnBildLadenClick(Sender: TObject);
begin
if openPictureD.Execute then
begin
imgBild.Picture.LoadFromFile(openPictureD.FileName);
sgDaten.Cells[0,clbBilder.Count] := inttostr(clbBilder.Count);
sgDaten.Cells[1,clbBilder.Count] := ExtractFileName(openPictureD.FileName);
sgDaten.Cells[2,clbBilder.Count] := ExtractFilePath(openPictureD.FileName) + ExtractFileName(openPictureD.FileName);
clbBilder.Items.Add(ExtractFileName(openPictureD.FileName));
lbBildName.Caption := ExtractFileName(openPictureD.FileName);
lbBildpfad.Caption := ExtractFilePath(openPictureD.FileName) + ExtractFileName(openPictureD.FileName);
end;
end;
//Bilder löschen
procedure TForm1.btnBildloeschenClick(Sender: TObject);
var ClickIndex : integer;
begin
ClickIndex := clbBilder.ItemIndex;
imgBild.Free;
lbBildName.Caption := '';
lbBildPfad.Caption := '';
sgDaten.Rows[ClickIndex].Clear;
for I := ClickIndex to sgDaten.RowCount-1 do
begin
sgDaten.Rows[i] := sgDaten.Rows[i+1];
end;
clbBilder.Items.Delete(ClickIndex);
end;
//Bilder anzeigen
procedure TForm1.clbBilderClick(Sender: TObject);
var ClickIndex : integer;
BildPfad : string;
BildName : string;
begin
ClickIndex := clbBilder.ItemIndex;
BildPfad := sgDaten.Cells[2,ClickIndex];
BildName := sgDaten.Cells[1,ClickIndex];
imgBild.Picture.LoadFromFile(BildPfad);
lbBildName.Caption := BildName;
lbBildpfad.Caption := BildPfad;
end;
Und dies ist mein Problem:
Ich habe eine CheckListBox, in der alle geladenen Bilder mit Namen stehen. Zusetzlich wird der Name des Bildes in einem StringGrit in der 2. Spalte und der Pfad in der 3. Spalte gespeichert. Klickt man nun auf einen Namen in der CheckListBox taucht das Bild auf. All das klappt gut.
Wenn ich ein Bild aus dem Verzeichnis löschen will, wird die ganze Zeile aus dem StingGrit gelöscht. Desweiteren werden alle nachfolgenden Zeileninhalte um eins nach oben gesetzt, so dass keine Lücke entsteht. Außerdem wird der Eintrag in der CheckListBox gelöscht. Leider taucht nun, wenn ich jetzt wieder ein Bild in der CheckListBox markiere um es anzuzeigen, ein Fehler auf: "
Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 004AF7F7 in Modul".
Ich hoffe das mir jemand erklären kann, wo der Fehler liegt und was ich da falsch gedacht habe.
Vielen Dank schonmal für eure Hilfe auch bei meinen anderen Fragen