listview items in ein edit feld "exportieren"



  • hiho nochmals.
    ich habe hier eine möglichkeit im forum gefunden mit der man eine ausgewählte zeile in ein edit feld schreiben kann. Jedoch nur die erste zeile...der quelltext sieht wie folgt aus:

    for(int i = 0; i < Listview1->Items->Count; i++)
    {
       if(Listview1->Items->Item[i]->Selected)
          {
            Edit1->Text = Listview1->Items->Item[i]->Caption;
          }
    }
    

    wie schaff ich das nun, auch das 2te element (nicht Item[i+1] !!) sondern den subitem in ein anderes Editfeld auszulesen ?? hab schon ein paar sachen versucht aber wenn ich ...Item[i]->SubItems; z.b. mache sagt er das eine konvertierung von tstring nach ansistring nicht möglich seie...

    kann mir da jemand helfen ??

    thx and greetz by defjam01



  • mann! nimm die tomaten von den augen und gugg dir in der hilfe doch mal SubItems an! was siehst du da? dann guggst du dir TStrings an! was stellst du fest?



  • tolle hilfe lol...wiso gleich so agressiv ??? hab geguckt ja bin ein n00b und jetzt ?!?!?!?!?!?! sorry kann nich jeder son guru sein wie du...


  • Mod

    Hallo

    du hast dir die Hilfe nicht richtig angeschaut. Denn sonst haettest du dein Problem erkannt.

    > tstring nach ansistring

    Was sagt uns das

    TString kann nicht nach AnsiString umgewandelt werden

    Was macht man da

    Man schaut "was ist ein TString" und "was ist ein AnsiString"

    und man stellt fest TString ist eine Stringliste

    dh. nach TString kommt noch etwas (ein oder mehrer Ansistrings)

    MfG
    Klaus



  • habs schon gefunden 😛 danke klausi hab nen krassen haxx0r aus meiner klasse gefragt.

    für alle anderen die es wissen wollen der befehl sieht bei mir folgendermassen aus:

    Edit1->Text = Listview1->Items->Item[i]->Caption; //für die erste zeile
    Edit2->Text = Listview1->Items->Item[i]->SubItems->Strings[0]; //für das erste subitem demnach in Strings[1] für das 2te :)
    

    greetz defjam01



  • Also so richtig hab ich das noch nicht verstanden.
    Ich möchte gerne folgende ausgabe machen:

    for (lauf1=450;lauf1>0;lauf1--){
    
    Memo1->Lines=IntToStr(sin[lauf1]);
    }
    

    sin[lauf1] ist vom Typ int, dann bekomm ich folgende Fehlermeldung

    [C++ Fehler] Unit1.cpp(26): E2034 Konvertierung von 'int *' nach 'TStrings *' nicht möglich
    

    Ich hab jetzt auch schon in der Hilfe gesucht, aber irgendwie weiß ich nicht wie ein TStrings* aussieht.
    Und viel wichtiger, wie wandel ich das um?

    gruß



  • Dann schau nochmal nach. Am besten auch gleich unter TStringList. Da wirst du feststellen, dass es dort eine Funktion Add gibt, mit der man Strings hinzufügen kann.
    Deine Fehlermeldung sieht aber merkwürdig aus. hast du die selbst geschrieben oder kopiert?



  • das war die Falsche Fehlermeldung

    [C++ Fehler] Unit1.cpp(144): E2034 Konvertierung von 'AnsiString' nach 'TStrings *' nicht möglich
    


  • Das sieht schon besser aus. 🙂
    Versuch mal das.

    Memo1->Lines->Add(IntToStr(sin[lauf1]));
    

    Und schau bitte in die Hilfe um zu verstehen wie das alles funktioniert. Falls du mit der Hilfe nicht zurecht kommst schau auch mal hier rein.
    http://www.junix.ch/bcb/help/hilfe.html



  • vielen dank für die schnelle hilfe.
    Hab die Lösung sogar nach deinem ersten Posting alleine gefunden.

    Danke


Anmelden zum Antworten