![]() |
OnSelectItem startet DragDrop nach ShellExecute
Hallo,
ich habe hier ein TListView in welchem das OnSelectItem definiert ist. OnSelectItem ruft 2 unterschiedliche Prozeduren auf: - Prozedur A - Prozedur B Der einzige Unterschied zwischen A und B ist, dass bei B vor der Verabeitung noch ein externes Prog aufgerufen wird, dessen Ende abgewartet wird, bevor es mit dem Code von A weiter geht. Den Programm-Aufruf habe ich testweise sowohl mit CreateProcess als auch mit ShellExecute ausprobiert. Wird A aufgerufen ist alles OK. Wird B aufgerufen, hängt das selektierte Icon zum draggen am Mauszeiger. WARUM ? Und noch viel wichtiger: was kann ich dagegen machen ? Gruss Michael |
Re: OnSelectItem startet DragDrop nach ShellExecute
Hi,
Ich denke das liegt daran, dass OnSelectItem im "MouseDown" aufgerufen wird und im MouseDown + Bewegung auch die Drag-Ereignisse ausgelöst werden. Du könntest DragMode auf dmManual setzen in A und nach B wieder auf dmAutomatic. Vielleicht hilft das ja. :) Viele Grüße |
Re: OnSelectItem startet DragDrop nach ShellExecute
Zitat:
B ruft auch nicht A auf, sonder ist eine exakte Kopie von, in der lediglich der Aufruf des externen Prog noch drinn ist. Statt meines externen Progs, kann man auch irgend ein anderes Aufrufen, z.B. Notepad.exe Zitat:
Zitat:
Prozedur A aufrufen ==> alles OK Prozedur B aufrufen ==> beim ersten MouseMove hängt das Icon an der Maus Gruss Michael |
Re: OnSelectItem startet DragDrop nach ShellExecute
Also ich habe es gerade mal mit Delphi 7 ausprobiert.
ShellExecuteAndWait-Funktion aus der CL. Habe ein ListView im Report-Modus mit ein paar Items angelegt und dann im OnSelectItem folgendes geschrieben (testweise):
Delphi-Quellcode:
Da trat das Problem jetzt bei mir nicht auf :gruebel:
ShellExecuteAndWaitA(Handle, 'open', 'notepad.exe', nil, nil, SW_SHOWNORMAL, True);
Hast Du noch was andere gemacht? Sonst würde ichs noch mit einem Aufruf von
Delphi-Quellcode:
nach B() versuchen.
ListView.EndDrag(False);
Grüße |
Re: OnSelectItem startet DragDrop nach ShellExecute
Hi,
Dein ShellExecuteAndWaitA könnte von asserbad stammen ? Mein ShellExecute sieht auf den ersten Blick ähnlich aus. Ich habe (dank Deiner Idee mit dmManual) eine Lösung, aber ohne das Problem zu beheben. Da Drag&Drop nur unter bestimmten Umständen aus der ListView heraus möglich sein soll, schalt ich es nur zu diesem Zeitpunhkt ein, ansonsten ist es aus (dmManual). Danke für die Anregung Gruss Michael |
Re: OnSelectItem startet DragDrop nach ShellExecute
Zitat:
![]() Zitat:
Viele Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz