Announcement

Collapse
No announcement yet.

Drag&Drop zwischen zwei DbGrids

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

  • Drag&Drop zwischen zwei DbGrids

    Hallo!<p>
    Ich möchte bei einen DbGrid eine Drga&Drop-Funktion einbauen: Ein selektierter Datensatz soll von einen DbGrid in ein anderes DbGrid gezogen werden können.<p>
    Diverse Versuche meinerseits scheiterten kläglich *schnüff*, da das DbGrid.OnMouseDown-Ereignis anscheinend nicht ausgelöst wird.<p>
    Ich hoffe jemand kann mir helfen,<br>
    Gruß,<br>
    Bernhard

  • #2
    Hallo Bernhard,

    auf den Borland Community Seiten (TIs) gibts dazu ein Beispiel.
    Dokument: TI1562D

    solltest Du's nicht finden, lasse es mich wissen, ich schicke Dir dann eine Kopie bzw. die Seitenangabe (müsste ich erst suchen...).

    mfg Holger
    email: [email protected]

    Comment


    • #3
      Jo, danke, das Dokument habe ich schon gefunden.<p>
      Allerdings ist die darin beschriebene Methode mehr oder weniger ein Hack. Ausserdem braucht man eine eigene Komponente dazu.<p>
      Trotzdem, danke für deine Hilfe,<br>
      Gruß,<br>
      Bernhar

      Comment


      • #4
        Hallo,

        setze doch einfach in dem DBGrid die DragDrop Eigenschaft auf
        automatik und nutze die Standard Ereignisse vom DBGrid (StartDrag,
        EndDrag, DragDrop, DropOver).

        Wenn du es anders lösen willst (manuell) musst du, soweit ich es noch
        weiss, Abfragen nach wieviel Pixel Mausbewegung mit gedrückter Taste
        der Drag Vorgang starten soll. (müsste ich aber erst noch in einem alten Quellcode nachschauen)

        Viel Erfolg.

        Stefa

        Comment


        • #5
          Hm, tja, wäre schön wenn es so einfach klappen würde. Leider lässt einen das DbGrid mit DragMode dmAutomatic nur das ganze Gitter per Drag&Drop verschieben, nicht aber eine einzelne Datenzeile. Ich glaube, der einzige Weg müsste über den DragMode = dmManual führen.......nur wie???

          Comment


          • #6
            Hallo,

            ermittle doch einfach beim Starten des Drag Vorganges den Index des
            aktiven Datensatzes und speichere den in einer Globalen Variablen zwischen.

            Beim DragDrop Ereignis im Ziel DBGrid kannst du dann den Datensatz in
            die Tabelle einfügen und aus der anderen Tabelle, falls gewünscht löschen

            Comment


            • #7
              Ok, alles machbar, nur das eigentliche Problem: Wann und wie soll ich das Draggen per <b>DbGrid.BeginDrag</b> starten? Das Ereignis OnMouseDown funktioniert nämlich nicht richtig *grummel* (d.h. es wird nur dann ausgeführt, wenn man ausserhalb der Grid-Zellen klickt).<p>
              Hast du vielleicht ein Code-Beispiel von Drag&Drop zwischen zwei DbGrids? *hoff, hoff*<p>
              Gruß, Bernhar

              Comment


              • #8
                Ich nutze nicht die Standard DBGrids von Delphi, aber ich werde
                das später kurz mit den Standard Grids versuchen. Wenn das damit
                klappt stell ich dir den Code zur Verfügung.

                Bis späte

                Comment


                • #9
                  Hallo,

                  ich hab das mit den Standard DBGrids probiert (was ein Sch.....).
                  Mit den Grids die ich nutze ist das super "einfach". Gott sei dank.

                  Ich empfehle dir die Anfrage nocheinmal im VCL Forum hier zu stellen.

                  Sorr

                  Comment


                  • #10
                    Tja, eigentlich bin ich ja eh schon seit längeren auf der Suche nach einen neuen DbGrid. Das Problem: Bisher habe ich noch nix gefunden.<p>
                    Als sparsamer Mensch *geiz* soll das Grid möglichst Freeware und mit kompletten Source-Code sein. Ausserdem soll es voll kompatibel zu dem alten Borland-DbGrid sein (Nachfahre). So ein Grid zu suchen, ist aber noch schwieriger als die Ostereiersuche.....<p>
                    Wer weiss Rat?<p>
                    Gruß,<br>
                    Bernhar

                    Comment

                    Working...
                    X