Listbox auslesen & Bilder anzeigen



  • Also folgendes Problem ich will wenn ich auf einen Eintrag in der Listbox klicke das dazugehörige Bild(es ist eigentlich nur ein Pfad) auslesen lassen und dann anzeigen.
    Die Einträge werden aus einer DB geholt und werden in die Listbox geladen.

    Das auslesen der Werte aus der DB und das hineinschreiben in die Listbox.

    void __fastcall TForm2::FormActivate(TObject *Sender)
    {
            int i;
            ListBox1->Clear();
            Query2->SQL->Clear();
            Query2->SQL->Add("Select Name from Bilder");
            Query2->Open();
            for (i=0; i< Query2->RecordCount; i++)
                {
                 ListBox1->Items->Add(Query2->FieldByName("Name")->AsString);
                 Query2->Next();
                 }
    }
    

    Das Bild anzeigen lassen.

    void __fastcall TForm2::ListBox1Click(TObject *Sender)
    {
      Image1->Picture->LoadFromFile(Table1->FieldByName("Bild")->Value);
    }
    


  • Und was genau ist dein Problem? Der Quelltext passt doch !?

    Gruß Skay



  • naja sagen wir es so ich klicke meinetwegen auf den ersten Eintrag (bild wird angezeigt) so jetzt klick ich auf den zweiten (das selbe Bild) wie vorher wird angezeigt obwohl da ein anderer Pfad ist deshalb muss ich es irgend wie hinbekommen die Werte die ich da in die ListBox ein gelesen habe auch wieder auslesen kann. Ich brauch das nämlich auch noch für spätere Zwecke.
    Wenn ich nämlich weiß auf was ich da geklickt habe kann ich die SQL Befehle auch anwenden. Die ich unbedingt brauch.

    Zusatz:
    Hab mir das mal durch den Kopf laufen lassen. Es gibt höchstens einen Harken der euch aufgefallen ist. Was ist wenn ich ich Werte in der ListBox drinen habe die identisch sind aber andere Bilder haben. So dazu sei gesagt in das dies nicht möglich ist. (Nur zur Info.)



  • Fantasyfr schrieb:

    naja sagen wir es so ich klicke meinetwegen auf den ersten Eintrag (bild wird angezeigt) so jetzt klick ich auf den zweiten (das selbe Bild) wie vorher wird angezeigt obwohl da ein anderer Pfad ist[...]

    Wie kommst du darauf, dass da ein anderer Pfad ist? In deinem Code rufst du jedesmal denselben Pfad aus der DB, da dort immernoch derselbe Datensatz angewählt ist.

    Sieh dir nochmal an, wie du beim Füllen der ListBox durch die einzelnen Datensätze wanderst, vielleicht fällt dir ja etwas auf.

    Viel einfacher wäre das alles natürlich bei Verwendung einer DBListBox ... 😉



  • ich weiß das ich immer den selben angewählt habe. Genau das ist ja auch mein Prob.

    ...

    hier schau mal dann weißt du auch ungefähr was ich will/brauche:

    Query2->SQL->Clear();
            Query2->SQL->Add("Select Bild from Bilder where Name = " + ListBox1->Selected);
            Query2->Open();
            Image1->Picture->LoadFromFile(Table1->FieldByName("Bild")->Value);
    

    damit will ich auf den angeklickten Wert auslesen um so auf den Datensatz zu stossen. Bloss wie komm ich dan diesen Wert ran.
    Ob das mit der DBListBox einfach ist kann sein aber da müste ich später auch noch auslesen auf was ich geklickt habe (glaub ich zu mindestens).

    @Anhang: muss ich nicht bei Table1 das Query2 nehmen? (och gott ich glaub ich brauch die Mittagspause *G* 😋 )



  • hat keiner ne Idee wie ich die selektierten Wert in einer Listbox auslese ?



  • was heisst selektierten auf Englisch ?

    und nun im Designmodus deine ListBox auswählen F1 drücken
    und die Hilfe zur ListBox durchschmöckern.

    ODER
    einfach in dem Link den DU selbst gepostet hast
    nachlesen http://mitglied.lycos.de/b534463/stichw.htm



  • mit select klappt das nicht und laut dem link was ich da gepostet habe gibt das nur True oder false zurück mehr nicht. aber ich schau mal in der Referenz nach die ich mir gedownloadet habe vielleicht steht da was brauch bares drinen.



  • Naja Selected gibt dir doch etwas zurück... zwar immer nur für ein Item der Listbox aber immerhin.
    Evtl. funktioniert bei dir aber auch ItemIndex.. <F1>
    und die ganzen Einträge sind ja als TStrings-Objekt gespeichert.
    Da kann man eigentlich relativ einfach zugreifen.



  • hey Jansen habs gelöst soll ich die Antwort nun posten oder nicht ?


Anmelden zum Antworten