Announcement

Collapse
No announcement yet.

Tabelle

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabelle

    Hi,
    ich würde gerne wissen, wo ich so ein Listenfeld herbekomme, wo ich die Spalten zur Laufzeit bennenen kann und per Klick auf ein Feld dieses ändern kann.



    Gruß

  • #2
    Ein TStringGrid mit DB-Anbindung ein TDBStringTable
    Zuletzt editiert von Christian Marquardt; 18.04.2007, 13:40.
    Christian

    Comment


    • #3
      und wie mach ich so etwas ? TStringGrid sieht auch ganz anders aus. links-oben ist es grau.

      Comment


      • #4
        Dich mit den Methoden und Eigenschaften des Grids beschäftigen. Die Farbe, Zellenhöhe u.a. -> das kann alles festgelegt werden. Das Borland "Standard" Grid ist natürlich nicht so flexibel wie

        http://www.tmssoftware.com/advgrid2.htm

        das hier.



        Für den Anfang schau dir

        Cells[col][row] -> Zugriff auf die einzelne Zelle
        RowCount -> Anzahl der Reihen
        ColCount -> Anzahl der Spalten
        FixedRows->Anzahl der "festen" Reihen
        FixedCols-> Anzahl der "festen" Spalten
        FixedColor -> Farbe der festen Reihen/Spalten
        DefaultRowHeight -> Höhe der Zeile

        an
        Christian

        Comment


        • #5
          Danke das war schon mal eine große Hilfe, allerdings weiss ich nicht wie man das andere TAdvStringGrid einbindet. Aber das standard TStringGrid würde schon reichen wenn man da etwas in die Zellen schreiben kann per Klick auf die Zelle oder ähnlich.

          EDIT: ah das mit dem ändern hat sich teilweise erledigt. bei options hab ich da was gefunden goEditing und sowas. aber kann man das auch so einstellen das ich z.b. nur die ersten 5 zeilen editieren kann und den rest nicht ?


          Gruß
          Zuletzt editiert von c0nstan; 18.04.2007, 20:36.

          Comment


          • #6
            kann man das auch so einstellen, dass ich z.b. nur die ersten 5 Zeilen editieren kann und den Rest nicht?
            Ich habe die von Christian empfohlene Komponente noch nicht benutzt (vielleicht gibt es dort eine Eigenschaft, die so etwas steuert), aber beim TStringGrid könntest Du z.B. im 'OnSelectCell' das Editieren je nach Zeile erlauben bzw. verbieten.
            allerdings weiss ich nicht, wie man das andere TAdvStringGrid einbindet
            Im ZIP-Archiv gibt es eine Datei install.txt, die - Englischkenntnisse vorausgesetzt - darüber Aufschluss gibt.

            Gruß vom Knut

            Comment


            • #7
              Je nach Builder Version die entsprechende Projektdatei öffnen, compilieren und die entstandene BPL-Datei in die Komponentenpalette aufnehmen (Über Packages)

              In dieser Komponente kannst du das Editieren über ein Ereignis steuern und damit für jede Zeile/Spalte/Zelle zulassen oder auch nicht.

              Die Freewareversion zeigt m.E. in der letzten Zeile immer einen Hinweis auf die Firma an.

              Im Standardgrid man kann das Editieren nicht so einfach ändern
              Zuletzt editiert von Christian Marquardt; 19.04.2007, 06:49.
              Christian

              Comment


              • #8
                Originally posted by Christian Marquardt View Post
                Im Standardgrid man kann das Editieren nicht so einfach ändern
                Einspruch ;-)
                Code:
                void __fastcall TForm1::StringGrid1SelectCell(TObject *Sender, int ACol,
                      int ARow, bool &CanSelect)
                {
                	if (ARow % 2 == 1)
                		StringGrid1->Options = StringGrid1->Options << goEditing;
                	else
                		StringGrid1->Options = StringGrid1->Options >> goEditing;
                }
                Damit kann z.B. nur jede zweite Zeile verändert werden. Man kann das jedoch beliebig erweitern und auch in Abhängigkeit vom Inhalt der Zellen steuern.

                Gruß Knut

                Comment


                • #9
                  Danke vielmals. Für meine Anforderungen reicht erst mal das normale TStringGrid aus, aber das mit dem Einbinden behalte ich natürlich im Kopf für später mal.

                  Ich könnte doch auch je nachdem wie viele Datensätze in einer Tabelle enthalten sind, auch nur so viele Rows zur Laufzeit einstellen oder.

                  Gruß

                  Comment


                  • #10
                    ja, klar, RowCount ändern
                    Christian

                    Comment

                    Working...
                    X