Announcement

Collapse
No announcement yet.

Drag & Drop, was mache ich falsch?

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

  • Drag & Drop, was mache ich falsch?

    Hallo Leute,

    Warum gibt es hier eine Schutzverletzung?

    Ich habe zwei Formulare. Auf dem ersten kann ich mittels Drag&Drop ein anderes Formular öffnen. Dort wiederrum kann ich erneut eine Aktion via Drag&Drop machen. Wenn ich nun das zweite Fenster schließe, kommt es zu einer Schutzverletzung. Ich finde den Fehler nicht. ouch!

    Öffne ich das zweite Fenster nicht via Drag&Drop sondern einfach mit einem Doppelklick, dann kann ich dort die Drag&Drap Aktion durchführen und auch das Fenster sauber schließen. Grübelnd...

    Hat jemand eine Idee?

    Der Code läßt sich schlecht erklären, daher hier ein Beispiel in der Anlage.

    Schon jetzt einmal ein Danke für die Hilfe.

    Gruß

    Axel

  • #2
    Hier die Anlag

    Comment


    • #3
      Als Hinweis, diese Antwort hatte ich in einem anderem Forum bekommmen. So funktioniert es auch. Nur kann ich dann das Fenster nicht mehr Modal öffnen. Ich müsste aber ein Modales Fenster haben.

      Moin Axel,

      das Problem tritt bei Show nicht auf.
      Es spielt auch keine Rolle, ob das Formular dynamisch oder beim Programmstart erzeugt wird.

      In D7 und D2006 konnte ich das reproduzieren, wobei ich es in D7 auch mal mit den Debug DCUs probiert habe:
      Mir scheint das ein Fehler in der VCL zu sein.
      Ruft man Form2 mit Show auf, so wird das zum ersten Droppen gehörige DragDone (Prozedur in der Unit Controls) aufgerufen, bevor das Formular angezeigt wird. Dann kann man die DragDrop-Operation auf Form2 ausführen, wobei wiederum DragDone aufgerufen wird.
      Öffnet man das Formular hingegen mit ShowModal, so wird DragDone das erste Mal aufgerufen, wenn man das Message-Fenster schliesst, und das zweite mal, wenn man Form2 schliesst.
      Zu diesem Zeitpunkt passen dann aber die Daten nicht mehr => Fehler

      Comment


      • #4
        Ich Benutze D5Enterprise und das habe deinen Code ausprobiert, aber das Problem gibt es scheinbar nicht. Mein Delphi konnte die Unit Variants in der uses-Klause nicht finden, also musste ich sie entfernen. Das Projekt wurde reibungslos compiliert und auch das Drag&Drop funktionierte. Ich konnte das 2. Fenster problemlos schliessen
        If it's there and you can see it – it's REAL
        If it's there and you can't see it – it's TRANSPARENT
        If it's not there and you can see it – it's VIRTUAL
        If it's not there and you can't see it – it's GONE!

        Comment

        Working...
        X