Announcement

Collapse
No announcement yet.

DBGrid neue row anzeigen

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

  • DBGrid neue row anzeigen

    Hello ,

    Ich will gerne die "row" selektieren oder anzeigen mit ein Nummer Datei aus
    ein Edit->Text Komponent

    Wann mann auf dass DBGrid klickt kommt dass selektierte row in Edit (dass funkioniert schön)
    Wann mann die Edit->Text ändert komt dass selektierte row in DBGrid

    Wie kann Ich dass machen bitte ?

    Danke,

  • #2
    Hallo!

    Vielleicht hilft Dir das OnChange-Ereignis der EditBox weiter... Dort den Datensatz suchen und bei Erfolg wird er dann im Grid (automatisch) markiert.
    Beachte aber, dass Du abfängst, von wo aus das Ereignis 'onChange' ausgelöst wird, sonst läuft das im Kreis (also z.B. im Grid beim OnClick eine (globale!) Variable setzen und diese im OnChange der TextBox überprüfen: wenn Sie nicht gesetzt ist, nicht den Datebnsatz suchen)!

    Gruß Knut

    Comment


    • #3
      Dass OnChange - event von Edit->Text brauch Ich schön, aber wass Ich nicht weiss ist wie die row markiert werde.

      Comment


      • #4
        Kann Ich nicht einfach etwas machen wie:

        DBGrid1->"row selector" = StrToInt(Edit1->Text);

        Und dass DBGrid die genaue "row" anzeigt?

        Comment


        • #5
          Row Eigenschaft

          Gibt den Index der Zeile an, die die ausgewählte Zelle enthält.
          Klasse Mit Row können Sie zur Laufzeit die aktuelle Zeile des Gitters bestimmen. Durch das Setzen von Row wird der Fokus zu der Zelle der aktuellen Spalte verschoben, die sich in der neuen Zeile befindet. Die erste Zeile hat den Index 0, die zweite den Index 1 usw. Die ausgewählte Zelle des Gitters kann mit den Eigenschaften Row und Col ermittelt werden. Diese Eigenschaften enthalten die Indizes der Zeile und der Spalte. Sobald der Fokus zum Gitter verschoben wird, erhält die ausgewählte Zelle den Eingabefokus.
          Christian

          Comment


          • #6
            Entschuldigung für dieses *newbie* frage aber es ist mir nicht 100% klär

            Meinen Sie dass Ich mit Row Property:

            DBGrid1->Row = StrToInt(Edit1->Text) die Zeile von DBGrid1 direkt kann setzen ?

            Comment


            • #7
              Warum versuchst du es nicht??
              Christian

              Comment


              • #8
                Code:
                DBGrid1->Row = StrToInt(UserEdit1->Text);
                error:

                'TCustomGrid::Row' is not accesible

                Comment


                • #9
                  habe übersehen, das in der DB Version das Ding protected ist. Geht also so nicht
                  Christian

                  Comment


                  • #10
                    Auch nicht mit etwass änders zu programmieren ?

                    Comment


                    • #11
                      Hallo,

                      Originally posted by Quadran View Post
                      Dass OnChange - event von Edit->Text brauch Ich schön, aber wass Ich nicht weiss ist wie die row markiert werde.
                      Das habe ich doch geschrieben: im OnChange den Datensatz suchen - wenn er gefunden wird, wir er auch markiert.

                      Gruß Knut

                      Comment


                      • #12
                        Entschuldiging Knut, aber mein Deutsch ist leiter nicht so ganz güt.

                        Ich verstehe dass Ich etwas programmieren muss in OnChange Event von Edit->Text, alles klär da!

                        Aber wass meinen Sie mit Datensatz suchen ?

                        Ich habe ein Query, Table und DataSource.

                        Muss Ich zugriff machen zum DataSource?

                        Können Sie vielleicht mehr Info geben bitte,
                        Danke!
                        Zuletzt editiert von Quadran; 22.08.2007, 11:31.

                        Comment


                        • #13
                          Hallo,

                          Datensatz suchen mit
                          Code:
                          virtual bool __fastcall Locate(const AnsiString KeyFields, const Variant &KeyValues, Db::TLocateOptions Options);     // Hilfe bemühen...
                          
                          if (!DBGrid1->Datasource->DataSet->Locate(...))
                              Application->MessageBox("Datensatz nicht vorhanden!", "Warnung", MB_ICONWARNING);
                          // im Erfolgsfall ist der aktuell im Grid markierte Datensatz der gefundene Datensatz.
                          Das ist's dann schon...

                          Gruß Knut

                          Comment


                          • #14
                            Hello Knut,

                            Danke für Ihne Kode aber es ist noch nicht ganz klär.

                            Code:
                            virtual bool __fastcall Locate(const AnsiString KeyFields, const Variant &KeyValues, Db::TLocateOptions Options);     // Hilfe bemühen...
                            
                            if (!DBGrid1->Datasource->DataSet->Locate(...))
                                Application->MessageBox("Datensatz nicht vorhanden!", "Warnung", MB_ICONWARNING);
                            // im Erfolgsfall ist der aktuell im Grid markierte Datensatz der gefundene Datensatz.
                            Muss Ich diese ganze Kode in OnChange programmieren.
                            Vielleicht muss Ich auch in dass header file die locate definieren ?
                            und wass muss Ich mit Locate(...) machen?

                            Entschuldigung aber das ist nicht ganz klar...

                            Comment


                            • #15
                              Junge, Junge...

                              Originally posted by Quadran
                              Muss Ich diese ganze Kode in OnChange programmieren.
                              Die erste Zeile gehört natürlich nicht zum Code, es ist die Deklaration von Locate und ich habe das nur zur Erklärung dazugeschrieben (hätte es vielleicht als Kommentar notieren sollen, aber ich dachte, das wäre selbsterklärend).

                              Originally posted by Quadran
                              Vielleicht muss Ich auch in dass header file die locate definieren ?
                              Nein - das gibt's bereits in irgendeinem Header (wahrscheinlich bde.hpp).

                              Originally posted by Quadran
                              und wass muss Ich mit Locate(...) machen?
                              Die drei Punkte zwischen den Klammern mit den richtigen Parametern gemäß der Deklaration und Deiner Anforderungen (die ich nicht kenne!) füllen, nachdem Du die Hilfe zu 'Locate' gelesen und verstanden hast... Du lernst nichts, wenn wir Dir hier alles vorbeten, also versuche bitte erst einmal selbst, weiter zu kommen.

                              Gruß Knut

                              Comment

                              Working...
                              X