![]() |
DragAcceptFiles - Was kann alles ein gültiges Ziel sein?
Hallo WinAPI Programmierer!
Ich hab irgendwie den Wurm drinn und bräuchte etwas Rat... Hier die Situation: Ich erstelle ganz normal ein Window-Dialog-Fenster ohne EXSTYLE WS_EX_ACCEPTFILES Hier mein Dialog STYLE Header: STYLE DS_SETFONT | DS_MODALFRAME | DS_SETFOREGROUND | DS_3DLOOK | DS_CENTER | WS_POPUPWINDOW | WS_VISIBLE | WS_DLGFRAME | WS_MINIMIZEBOX EXSTYLE WS_EX_OVERLAPPEDWINDOW | WS_EX_TOPMOST | WS_EX_STATICEDGE | WS_EX_APPWINDOW | WS_EX_LEFT | WS_EX_LTRREADING | WS_EX_RIGHTSCROLLBAR | WS_EX_NOINHERITLAYOUT Hier mein Test CONTROL: CONTROL "> Drop <", 1234, STATIC, SS_CENTER | WS_CHILD | WS_VISIBLE | WS_GROUP, 10, 10, 50, 50 Im Source verwende ich in der Init-Phase dieses Kommando: DragAcceptFiles(GetDlgItem(hWin, 1234), True); Ich habe auch WM_DROPFILES in meiner DlgProc() routine eingearbeitet aber bei Ausführung ist 1234 kein Drop-Target. Wenn ich als CONTROL eine LISTBOX nehm, funktioniert es. Wenn ich im EXSTYLE WS_EX_ACCEPTFILES angebe, ist das ganze Window ein Drop-Target (nicht erwünscht) Was mache ich falsch oder akzeptiert DragAcceptFiles() nur bestimmte CONTROL's als Ziel ?? Oder muss ich die CONTROL mit einem bestimmten Parameter initialisieren in der .RC datei? Ich hab dutzende kombinationen ausprobiert und komm einfach nicht weiter. Meine Win32.hlp sagt: Zitat:
Hat jemand einen guten Tipp für mich? Grüße |
AW: DragAcceptFiles - Was kann alles ein gültiges Ziel sein?
Soweit ich weiß sollten alle Controls, die von TWinControl abgeleitet sind (wie eben z.B. ein Listview) ein eigenes Fensterhandle haben, was, soweit ich weiß, Voraussetzung ist, um Drag'n Drop zu realisieren.
|
AW: DragAcceptFiles - Was kann alles ein gültiges Ziel sein?
Liste der Anhänge anzeigen (Anzahl: 1)
Ich werd nochmal verrückt....
Hab grad ein mini Beispiel gebastelt..... wie soll's anders sein, da funzt alles so wie ich es mir wünsche. Im Anhang sind zwei Beispiele drinn, da klappts mit "Das CONTROL ist ein gültiges Ziel"... sample1.dpr = LISTBOX ist ziel sample2.dpr = STATIC ist ziel dialog1.rc = ruft "BRCC32 dialog1.rc" auf um die .res datei zu erzeugen bevor ihr "dcc32 sampleX.dpr" aufruft. (das Beispiel stammt von LENIN_INC, habs nur minimal abgeändert zum funktions test) in diesen mini samples kann ich jedes control als legitimes drop ziel einbinden. In meinem Haupt-Source muss ich irgendwo irgendein befehl drinnen haben der anscheinend das wieder rückgängig macht. Mist mist mist..... :wall: Von daher meine neue Frage, weiß jemand unter was für umständen ein DragAcceptFiles() wieder ausgehebelt werden könnte? (mein Source ist ja nur schlapp 4mb gross, wird lustig ^^) |
AW: DragAcceptFiles - Was kann alles ein gültiges Ziel sein?
Mein Tip, Debugging, evtl. mit den Delphi-Quellen im Debug-Modus. Lege einen Haltepunkt an eine Stelle der Event-Verarbeitung von Drag-Files, die noch erreicht wird und verfolge wohin die Resie geht.
|
AW: DragAcceptFiles - Was kann alles ein gültiges Ziel sein?
Ich hatte früher das Problem RecreateWnd, also dass das Handle nach dem zuweisen wieder zerstört und neu erstellt wurde. Also nochmals zuweisen..
|
AW: DragAcceptFiles - Was kann alles ein gültiges Ziel sein?
Zitat:
nicht in taskbar, nicht im taskmanager, es erstellt sich selbst des öfteren wenns minimiert ist (im systray) zerstör ich das Window und erschaffe es neu wenn aus tray zurück. Das ist ein wahrscheinlich seeeeeeehr guter Tipp !! :thumb::thumb::thumb: Das grenzt es hoffentlich ein da per Debugger nichts ersichtlich wird. Danke & Grüße edit: also selbst wenn ich einen TimerEvent (20ms intervall) laufen lasse in dem ein DragAcceptFile ausgeführt wird, interessierts mein programm nicht, abgesehen vom kompletten window klappts nicht. Ich werd die tage mal den source zerlegen und alles was in der startphase so passiert durchtesten. Irgendein Grund muss es ja geben das mein
Code:
versagt
DragAcceptFiles(GetDlgItem(hWin, 12345), True);
aber ein
Code:
klappt.
DragAcceptFiles(hWin, True);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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