Drag & Drop funkcja DragAcceptFiles

dział ogólny

Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Corvis » czwartek, 13 października 2011, 12:35

Witam,

Mam ciekawy problem w OnCreate formy robię coś takiego:

DragAcceptFiles(this->Handle, true); // pozwala na upuszczanie plików na formatkę.

Chcę przeciągając swoje pliki na formatkę móc je wczytać do programu. ( Samą obsługę zrobiłem )

Ale działa to jak chce. Np.

- Win Vista - działa
- Win 7 - nie działa
- Win XP - działa
- Win XP inny PC - nie działa

Nie działa tzn, że nie pozwala na upuszczanie plików jest ikona przekreślone koło.

Wie ktoś może o co chodzi ??

Pozdrawiam
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Cyfrowy Baron » czwartek, 13 października 2011, 16:29

Zajżyj do serwisu Cyfrowy Baron, dział: porady -> TRichEdit & Memo porada: Przeciąganie i upuszczanie plików na RichEdit.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Corvis » piątek, 14 października 2011, 08:29

Działa tak samo jak mój kod :-) Czyli na każdym komputerze inaczej :|
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez polymorphism » piątek, 14 października 2011, 09:52

Daj gdzieś na początku WinMain wywołanie OleInitialize, a na końcu OleUninitialize. Być może tu tkwi problem.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Corvis » piątek, 14 października 2011, 10:57

Niestety nic nie pomogło :-(
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez polymorphism » piątek, 14 października 2011, 11:00

A jak masz zrobioną obsługę WM_DROPFILES?
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Corvis » piątek, 14 października 2011, 13:12

Tak jak tutaj:

► patrz serwis: Cyfrowy Baron dział: porady TRichEdit & Memo porada: Przeciąganie i upuszczanie plików na RichEdit. http://programowanie.cal.pl/cyfbar/richedit.html#r11


NIe wiem czy WM_DROPFILES ma coś do samego przeciągania i akceptacji przeciągania.
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez polymorphism » piątek, 14 października 2011, 13:21

Z tego co wyczytałem komunikat WM_DROPFILES jest blokowany w siódemce (ponoć jakieś względy bezpieczeństwa), zatem użyj funkcji ChangeWindowMessageFilter, by ten komunikat odblokować.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Corvis » piątek, 14 października 2011, 13:35

Wywala na XP których nie działało: Nie znaleziono punktu wyjścia procedury ChangeWindowsMessageFilter

No i jest odpowiedź:

Minimum operating systems Windows Vista

:-\
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez polymorphism » piątek, 14 października 2011, 13:48

No to zaimplementuj interfejs IDropTarget, tu problemów być nie powinno ;)
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Corvis » piątek, 14 października 2011, 13:51

Coś będe dumał dalej - dzięki

Wiesz może o co tutaj chodzi: viewtopic.php?f=2&t=1542 ??
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Cyfrowy Baron » piątek, 14 października 2011, 16:00

Corvis napisał(a):Czyli na każdym komputerze inaczej :|


Czy ta różnica w tym, że na jednym Win XP działa a na drugim nie, nie ma związku z tym, że jeden system jest 32-bitowy, a drugi 64-bitowy?! :?:
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Corvis » piątek, 14 października 2011, 23:18

Xp-ki mamy 32 bitowe.
Windows 7 faktycznie jest 64 bitowy
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Drag & Drop funkcja DragAcceptFiles

Nowy postprzez Cyfrowy Baron » sobota, 15 października 2011, 09:08

Co do Win 7 to nic nie poradzę, nie używam. Sprawdzałem na trzech komputerach wyposażonych w Windows XP 32 bity i kod działa. Jak będę miał dostęp do Win 7 to sprawdzę.
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 2 gości