AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi OnSelectItem startet DragDrop nach ShellExecute
Thema durchsuchen
Ansicht
Themen-Optionen

OnSelectItem startet DragDrop nach ShellExecute

Ein Thema von kalmi01 · begonnen am 16. Sep 2008 · letzter Beitrag vom 16. Sep 2008
Antwort Antwort
kalmi01
(Gast)

n/a Beiträge
 
#1

OnSelectItem startet DragDrop nach ShellExecute

  Alt 16. Sep 2008, 09:16
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
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#2

Re: OnSelectItem startet DragDrop nach ShellExecute

  Alt 16. Sep 2008, 09:20
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
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#3

Re: OnSelectItem startet DragDrop nach ShellExecute

  Alt 16. Sep 2008, 09:38
Zitat von mirage228:
Ich denke das liegt daran, dass OnSelectItem im "MouseDown" aufgerufen wird und im MouseDown + Bewegung auch die Drag-Ereignisse ausgelöst werden.
Dann müsste es aber bei Prozedur A und B schief gehen.
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 von mirage228:
Du könntest DragMode auf dmManual setzen in A und nach B wieder auf dmAutomatic.
Hab ich getan.

Zitat von mirage228:
Vielleicht hilft das ja.
leider nein.

Prozedur A aufrufen ==> alles OK

Prozedur B aufrufen ==> beim ersten MouseMove hängt das Icon an der Maus

Gruss
Michael
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: OnSelectItem startet DragDrop nach ShellExecute

  Alt 16. Sep 2008, 09:55
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):
  ShellExecuteAndWaitA(Handle, 'open', 'notepad.exe', nil, nil, SW_SHOWNORMAL, True); Da trat das Problem jetzt bei mir nicht auf

Hast Du noch was andere gemacht? Sonst würde ichs noch mit einem Aufruf von
ListView.EndDrag(False); nach B() versuchen.

Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#5

Re: OnSelectItem startet DragDrop nach ShellExecute

  Alt 16. Sep 2008, 10:46
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
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#6

Re: OnSelectItem startet DragDrop nach ShellExecute

  Alt 16. Sep 2008, 11:35
Zitat von kalmi01:
Dein ShellExecuteAndWaitA könnte von asserbad stammen ?
Ganz genau

Zitat:
Danke für die Anregung
Gerne

Viele Grüße
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz