AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi File aus TIDAttachment Löschen ?
Thema durchsuchen
Ansicht
Themen-Optionen

File aus TIDAttachment Löschen ?

Ein Thema von wlfmario · begonnen am 28. Mär 2006 · letzter Beitrag vom 28. Mär 2006
Antwort Antwort
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#1

File aus TIDAttachment Löschen ?

  Alt 28. Mär 2006, 14:18
Hallo zusammen,

ich versände mit meinem Projekt Mails mit mehreren Anhängen.
Die Anhänge lade ich mir per TIDAttachment und schreibe den Filenamen in eine ListView.
Delphi-Quellcode:
procedure TMailSend.ButtonLadenClick(Sender: TObject);
begin
  if (Opendialog1.Execute) then
  begin
    TiDAttachment.Create(MsgSend.MessageParts, Opendialog1.FileName);
    ListviewAnhang.Items.Add.Caption := ExtractFilename(Opendialog1.FileName);
  end;
end;
Wenn ich jetzt aber ein File nicht mit senden möchte, dachte ich mir, das ich es einfach aus der TIDAttachment Lösche.
Leider fällt mir keine möglichkeit ein die Attachmenst einzeln zu löschen und nicht alle.
Wie kann ich so etwas machen, das wenn ich im ListView ein FileName anklicke das richtige File aus dem Attachments gelöscht wird ?

Delphi-Quellcode:
procedure TMailSend.ListViewAnhangKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = VK_DELETE then
    if ListViewAnhang.Selected <> nil then
    begin
      // hier das Attachment Löschen ????????
      ListViewAnhang.DeleteSelected;
      {Anhang Löschen}
    end
    else
      exit;
end;
Mario
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: File aus TIDAttachment Löschen ?

  Alt 28. Mär 2006, 15:15
Auf die einzelnen Attachments kannst du mit

(*Name der Instanz von TIdMessage*).MessageParts.Items zugreifen.

Um die Datei aus der Attachmentliste zu löschen, reicht es, das Objekt freizugeben.

Delphi-Quellcode:
  for i := 0 to (*Name der Instanz von TIdMessage*).MessageParts.Count-1 do
    if ((*Name der Instanz von TIdMessage*).MessageParts.Items[i].StoredPathName = 'Pfad\zur\Datei') then
      (*Name der Instanz von TIdMessage*).MessageParts.Items[i].Free;
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#3

Re: File aus TIDAttachment Löschen ?

  Alt 28. Mär 2006, 15:43
Danke für die schnelle Antwort !

jetzt habe ich nur das Problem wenn ich die Procedure aufrufe, das ich immer wenn ich mehr als zwei Files lade folgende Fehlermeldung erscheint.

Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt MailClient.exe ist eine Exception der Klasse EListError aufgetreten. Meldung: 'Listenindex überschreitet das Maximum (2)'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
Wenn es nur zwei Files sind klappt es.
hier mal die Procedure, in Listview steht der Pfad zum File.

Delphi-Quellcode:
procedure TMailSend.ListViewAnhangKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);

  Var i: integer;

begin
  if key = VK_DELETE then
    if ListViewAnhang.Selected <> nil then
    begin
      for i := 0 to pred(MsgSend.MessageParts.Count) do
      begin
    if (MsgSend.MessageParts.Items[i].StoredPathName = ListViewAnhang.Selected.Caption) then
      MsgSend.MessageParts.Items[i].Free;
      end;
      ListViewAnhang.DeleteSelected;
      {Anhang Löschen}
    end
    else
      exit;
end;
Mario
  Mit Zitat antworten Zitat
wlfmario

Registriert seit: 5. Jan 2005
Ort: Pulheim
115 Beiträge
 
#4

Re: File aus TIDAttachment Löschen ?

  Alt 28. Mär 2006, 15:53
Erledigt !

ich hatte das -1 vergessen.

Danke für die Hilfe.
Mario
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz