StringGrid



  • Hallo, habe eine kleine Frage.
    Ich habe hier eine ListBox und einen StringGrid!
    In der Listbox befinden sich natürlich Items.
    Also wenn ich auf meinen Menüeintrag "Werte übertragen" klicke soll eine Nachricht kommen, jene Spalte, in die der Listeninhalt übertragen werden solle, anzuklicken!
    Soweit sogut. Das hab ich.
    Aber dann weiß ich nicht mehr weiter, wie ich diesen Listeninhalt in eine Spalte reinbekomme... Also ein On-Click Ereignis vom StringGrid bräuchte ich!

    Habs so irgentwie versucht aber bin nie auf einen grünen Zweig gekommen.. und ich denke auch ich bin noch weit entfernt..

    void __fastcall TForm1::StringGrid1Click(TObject *Sender)
    {
     if (StringGrid1->Cols[StringGrid1->ItemIndex]==true)
     {
     //?
     }
    }
    

    Kann mir wer helfen?

    Danke im Voraus!



  • Hallo

    Ein schneller Blick in die BCB-Hilfe würde dir zeigen, das es keine Eigenschaft TStringGrid::ItemIndex gibt, aber dafür die Eigenschaften ::Row und ::Col.

    bis bald
    akari



  • Hi,
    ja ich weiß dass eh. Aber ein Versuch war es doch wert!
    Ich weiß auch dass es Row und Col gibt, weiß es aber nicht anzuwenden 😞
    WENN eine Spalte angeklickt wird, soll in der ganzen Spalte der Listboxinhalt wiedergegeben werde. Ne von allein komm ich nicht drauf..

    PS.: Hab wieder vergessen anzugeben, dass bei mir die BCB-Hilfe nicht funktioniert. Ich werde es in der nächsten Woche aber "reparieren" und dann müsste es auch wieder gehen! Aber z.Z. geht sie NICHT!



  • Hallo

    Als einfachstes

    void __fastcall TForm1::StringGrid1Click(TObject *Sender)
    {
      for (int lv = 0; lv < ListBox1->Items->Count && lv < StringGrid1->RowCount; lv++)
        StringGrid1->Cells[StringGrid1->Col][lv] = ListBox1->Items->Strings[lv];
    }
    

    Das berücksichtigt natürlich nur Elemente die von Index/Zeile her bereits in StringGrid und ListBox verhanden sind, es wird also nur der Wert selber kopiert.
    Desweiteren sollten eventuell noch Überprüfungen rein ob in ListBox und StringGrid wirklich eine gültige Auswahl besteht.

    bis bald
    akari



  • akari danke echt! es geht natürlich!
    Kannst du aber noch es etwas erläutern? Naja jeden Befehl.. Das würde mir echt weiterhelfen. Ich verstehs schon aber nicht so ganz...

    MFG



  • Hallo

    for (int lv = 0; lv < ListBox1->Items->Count && lv < StringGrid1->RowCount; lv++)
    // Schleife von 0 bis x, wobei x kleiner als die Anzahl der Zeilen im Stringgrid als auch kleiner als die Anzahl der Items in der ListBox sein soll
        StringGrid1->Cells[StringGrid1->Col][lv] = ListBox1->Items->Strings[lv];
    // Kopieren des Wertes von dem Item x aus der ListBox in die Zelle des StringGrids mit der Zeile x und der ausgewählten Spalte
    

    bis bald
    akari


Log in to reply