Autor Beitrag
Soapy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Sa 05.04.08 17:33 
Ich hab mal wieder ein Prolem:

Ich will einer Memo einen bestimmten Wert eines ListView-Items zuweißen.

Mein erster Versuch sieht so aus:
(Es gibt noch mehrere, die entweder syntaktisch falsch waren, oder nicht geklappt haben)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TFrmMain.Button1Click(Sender: TObject);
var X : string;
begin
Memo1.Clear;
Memo1.Lines.Add(x);
x := Listview1.ItemFocused.SubItems.ValueFromIndex[Listview1.ItemFocused.SubItems.IndexOf('Text')];
end;


Dazu noch:
Ja, es gibt eine Spalte namens "Text"
und
Ja, in dieser Spalte befindet sich auch ein Text!

Ich habe alle Fehlermöglichkeiten durchgegangen, aber keine gefunden!

Warscheinlich gibt es tausend Möglichkeiten, aber ich erkenn sie nicht, da meine Programmierhilfe kaputt ist!

Würde mich über viele Antworten sehr freuen, und sage schonmal danke!
lg
soapy

_________________
Linux wird nie das meistinstallierte Betriebssystem sein, wenn man bedenkt, wie oft man Windows neu installieren muss!


Zuletzt bearbeitet von Soapy am Di 08.04.08 12:55, insgesamt 1-mal bearbeitet
LexXis
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 170
Erhaltene Danke: 3



BeitragVerfasst: So 06.04.08 05:10 
:shock: Öm.. Lies Dir das Ganze doch bitte nochmal genau durch...
Könnte der Fehler der sein, dass Du die Variable X verwendest, bevor Du sie mit Text gefüllt hast?
Bei Memo1.Lines.Add() is die ja noch leer. kein Wunder dass dann auch in deinem Memo nix steht :wink:
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: So 06.04.08 10:27 
Vielen Dank für die Antwort!
Wäre mir nicht aufgefallen :oops: !
Wäre peinlich gewesen, wenn das der Fehler gewesen wäre, er wars aber nicht!

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TFrmMain.Button1Click(Sender: TObject);
var X : string;
begin
Memo1.Clear;
x := Listview1.ItemFocused.SubItems.ValueFromIndex[Listview1.ItemFocused.SubItems.IndexOf('Text')];
Memo1.Lines.Add(x);
end;


So gehts immer noch nicht!

_________________
Linux wird nie das meistinstallierte Betriebssystem sein, wenn man bedenkt, wie oft man Windows neu installieren muss!
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: So 06.04.08 17:47 
niemand mehr ne idee? :cry: :(

_________________
Linux wird nie das meistinstallierte Betriebssystem sein, wenn man bedenkt, wie oft man Windows neu installieren muss!
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Di 08.04.08 13:33 
Kann mir hier niemand helfen? :?:

_________________
Linux wird nie das meistinstallierte Betriebssystem sein, wenn man bedenkt, wie oft man Windows neu installieren muss!
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Di 08.04.08 14:47 
Ein weiterer meiner kläglich gescheiterten Versuchen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TFrmMain.Button1Click(Sender: TObject);
var X : string;
begin
Memo1.Clear;
x := Listview1.ItemFocused.SubItems.Strings[4];
Memo1.Lines.Add(x);
end;


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
begin
Listview1.Items.Add.Caption := IdMessage1.Subject;
Listview1.Items[i-1-Listview2.Items.Count].SubItems.Add(DateToStr(IDMessage1.Date));
Listview1.Items[i-1-Listview2.Items.Count].SubItems.Add(IDMessage1.From.Address);
Listview1.Items[i-1-Listview2.Items.Count].SubItems.Add(IntToStr(IDpop31.RetrieveMsgSize(i) div 1024)+'kb');
Listview1.Items[i-1-Listview2.Items.Count].SubItems.Add(IdMessage1.MsgId);
For l := 0 to IdMessage1.Body.Count-1 do
  Listview1.Items[i-1-Listview2.Items.Count].SubItems.Add(IdMessage1.Body.Strings[l]);
end;


Jetzt wird zwar die erste Zeile der Mail angezeigt, aber auch nur die erste, nicht jedoch die anderen!

_________________
Linux wird nie das meistinstallierte Betriebssystem sein, wenn man bedenkt, wie oft man Windows neu installieren muss!
Yogu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2598
Erhaltene Danke: 156

Ubuntu 13.04, Win 7
C# (VS 2013)
BeitragVerfasst: Di 08.04.08 17:58 
Wie wär's denn, wenn wir den Code noch mal ganz von vorne durchgehen?

Also, zuerst willst du die ListView mit den E-Mails füllen. Dafür hast du schon eine Schleife, die die Mails abruft und in der Komponente IdMessage1 speichert. Jetzt willst du die Nachrichten in die ListView laden.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
{ Nachricht in IdMessage1 speichern }

with ListView1.Items.Add do
begin
  Caption := IdMessage1.Subject;             // Betreff
  SubItems.Add(DateToStr(IdMessage1.Date));  // Datum
  SubItems.Add(IdMessage1.From.Address);     // Absender
  SubItems.Add(IntToStr(IdPop31.RetrieveMsgSize(i) div 1024)+' KB'); // Nachrichtengröße
  SubItems.Add(IdMessage1.MsgId);            // Message-ID
  SubItems.Add(IdMessage1.Body.Text);        // Nachrichten-Content
end;

Die letze Zeile habe ich angepasst. Du musst einfach nur den Inhalt von IdMessage1.Body als SubItem hinzufügen. Da ist die gesamte Nachricht drin.

Um jetzt den Inhalt in ein Memo zu laden, kannst du jetzt die letze Spalte benutzen.

ausblenden Delphi-Quelltext
1:
Memo1.Lines.Text := ListVivew1.Selected.SubItems[4];					
Soapy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 88

Windows 2000
Delphi 2005 Personal
BeitragVerfasst: Di 08.04.08 20:38 
Cool!
Jetzt klappts!
Vielen Dank!

_________________
Linux wird nie das meistinstallierte Betriebssystem sein, wenn man bedenkt, wie oft man Windows neu installieren muss!