Hallo zusammen,
ich versuche grade einen Pfad einer Datei in einen Data Object zu Speichern.
Leider tauchen immer Fehlermeldungen auf mit dem ich nichts anfangen kann.
Zitat:
---------------------------
Benachrichtigung über Debugger-
Exception
---------------------------
Im Projekt MailClient.exe ist eine
Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004AC152 in Modul 'MailClient.exe'. Lesen von Adresse 00000004'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
ich habe ein Type TAttachPfad angelegt
Delphi-Quellcode:
type
TAttachPfadDaten = class(TObject)
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
Attachpfad: string;
end;
und speichere die Adresse der Datei mit folgendem Code:
Delphi-Quellcode:
procedure TMailSend.ButtonLadenClick(Sender: TObject);
var
AttachPfadDaten: TAttachPfadDaten;
begin
AttachPfadDaten := TAttachPfadDaten.Create;
if (Opendialog1.Execute) then
begin
TiDAttachment.Create(MsgSend.MessageParts, Opendialog1.FileName);
ListviewAnhang.Items.Add.Caption := ExtractFileName(Opendialog1.FileName);
AttachPfadDaten.Attachpfad := opendialog1.FileName;
itm.Data := AttachpfadDaten;
end;
end;
Wenn ich jetzt in meiner ListView mehr als ein Eintrag habe, und einen davon Löschen möchte, versuche ich dies über diese
Procedure:
Delphi-Quellcode:
procedure TMailSend.ButtonLoeschenClick(Sender: TObject);
var
AttachPfadDaten: TAttachPfadDaten;
i, x: integer;
begin
if ListViewAnhang.Selected <> nil then
begin
with ListViewAnhang do
begin
for x := 0 to Items.Count - 1 do
if (Items.Item[x].Selected) then
AttachPfadDaten := TAttachPfadDaten(Items[x].data);
end;
for i := 0 to pred(MsgSend.MessageParts.Count - 1) do
begin
if (MsgSend.MessageParts.Items[i].StoredPathName =
AttachPfadDaten.Attachpfad) then
MsgSend.MessageParts.Items[i].Free;
end;
ListViewAnhang.DeleteSelected;
{Anhang Löschen}
end
else
exit;
end;
Leider klappt das nicht so wie ich mir das dachte, kann mir jemand sagen was ich dort Falsch mache ?
Was den Fehler verursacht ?
Wenn ich die das alles richtig verstanden habe, kann ich doch für jeden eintrag in meiner Listview ein Data benutzen oder ?