Results 1 to 5 of 5
Thread: Âúïðîñè çà drag & drop â windows
Hybrid View
-
24th February 2007 13:12 #1Registered User
Join Date: Aug:2006
Location: Ïëîâäèâ
Posts: 4,052
Âúïðîñè çà drag & drop â windows
Ðàçðàáîòâàì åäíî ïðèëîæåíèå ÷ðåç freepascal è lcl [lazarus component library] - äåôàêòî áåçïëàòåí êëîíèíã íà äåëôè.
Äàéòå ìè íÿêàêâè èäåè êàê ñå îñúùåñòâÿâà äðàã/äðîï, ïðèìåðíî íà ôàéë îò explorer êúì ïðîãðàìàòà (ôîðìèòå è) ìè.
Ìîæå è äà íå å íà ïàñêàë (c, vb), íå ìèñëÿ, ÷å ùå ìè å ïðîáëåì àêî ðàçáåðà êàê ñòàâà äà ñúçäàì ìàëúê dll , êîéòî äà ñúçäàâà "drop" ïðîçîðåö è äà ãî âúðæà êúì ïðèëîæåíèåòî ìè.
-
24th February 2007 14:58 #2
íàé-ïðîñòîòî å íà ïðîçîðåöà äà ñå äàäå ñòèë WS_EX_ACCEPTFILES èëè èìàøå åäíî ÀÏÈ( DragAcceptFiles, ñåòèõ ñå) è îáðàáîòâàø WM_DROPFILES. ÌÍîãî å ïðîñòî. ÔÚë ôèé÷úðä Äðàã-äðîï ìîæåø äà âèäèø êàê ñå ïðàâè òóê:
http://www.catch22.net/tuts/ è ãëåäàø OLE Drag and Drop òóòîðèúëà. Íå å ïðîáëåì äà ñå òðàíñëèðà íà ïàñêàë, îñâåí äà âíèìàâàø ñ óêàçàòåëèòå.
P.S. Àêî èñêàø ïðîçîðåöà, êîéòî àêñåïòâà ôàéëîâåòå äà íå å îñíîâíèÿ èëè äà íå å òàêúâ íà êîéòî òè ìó ïèøåø ïðîçîðå÷íàòà ïðîöåäóðà, òðÿáâà äà ãî ñóáêëàñíåø ëîêàëíî.Last edited by Bombera; 24th February 2007 at 15:11.
EVGA X299 FTW K|i9-7960X@4.7|4x8 Patriot Viper Steel 4000|GTX 1660 Ti|970 EVO 1 TB|Seasonic Focus GX-1000|Xigmatek Elysium|Êèëî è ïîëîâèíà âîäà
Rampage IV Extreme BE|E5-1680v2@4.7|4x4 HyperX 1866|Cougar Aqua 240|GTX 1050 Ti|970 EVO 1/4 TB|CM 850 SilentPro|HAF-X|Áåç èñòèíñêî âîäíî
-
24th February 2007 18:13 #3Registered User
Join Date: Aug:2006
Location: Ïëîâäèâ
Posts: 4,052
Áëàãîäàðÿ, ñåãà ïîðîâÿ. Ðåàëíî íå ìè òðÿáâà öÿëàòà ôóêíöèîíàëíîñò, ñàìî åäèíñòâåíî ôàéëîâå îò øåëà, òàêà ÷å ìàé DragAcceptFiles ùå ìè ñâúðøè íàé-äîáðå ðàáîòà.
---
Íàìåðèõ âúíøåí êîìïîíåíò ñ îòâîðåí êîä, êîéòî äàâà dragacceptfiles ôóíêöèîíàëíîñò çà äåëôè, îñòàâà äà ãî ïîäêàðàì ïîä lazarus
---
Îùå åäèí, ìàëêî ïî-ñòðàíè÷åí âúïðîñ. Èìàì file.x, íàñòîåí äà ñå îòâàðÿ ñ app.exe. Ïðè äðîï íà ôàéëîâå îò explorer â/ó file.x êàêâî ñå ñëó÷âà? (app.exe file.x files.foo ?)
-------------
Äà, äà, ìíîãî ñúì òúï. Òîâà èñêà àäðåñ, àìà êàòî ÷åòà ïðåç ðåäîâåòå... Îñòàíàõà äðóãèòå ãðåøêè
Îêåé, òîâà óñïÿâà äà ìå ìú÷è
DragQueryPoint(hDrop, Info.Point); - ðåâå, ÷å íå èñêà òèï POINT çà 2-ðèÿ ðåçóëòàò, à LPOINT.
Èçìèñëÿì íÿêàêúâ workaround, ò.å.
È âå÷å ðåâå - íå èñêà LPOINT, à LPOINTCode:LPOINT = record x,y : longint; end; .... TempSol: LPOINT; TempSol.x := Info.Point.x; TempSol.y := Info.Point.y; DragQueryPoint(hDrop, TempSol);

Ïîìîù ìîëÿ
[òèïà íà lpoint ñòðóêòóðàòà å âçåò îò http://msdn.microsoft.com/library/de...tangl_0tiq.asp
åòî è äåêëàðàöèÿòà îò ms íà ñàìàòà DragQueryPoint
lpptCode:BOOL DragQueryPoint( HDROP hDrop, LPPOINT lppt );
Address of a POINT structure that the function fills with the coordinates of the mouse pointer at the time the file was dropped.]
Last edited by solar_sea; 24th February 2007 at 19:52.
-
25th February 2007 03:33 #4
Ìè LPPOINT å óêàçàòåë êúì POINT ñòðóêòóðà. ò.å ^ ìàé áåøå ñ Ïàñêàëà, çàåáà@õ Äåëãè ïðåäè ãîäèíè. Ò.å ïîäàâàø:
DragQueryPoint(hDrop, ^TempSol);
Àìè òÿ òðÿáâà äà ÿ èìàø äåêëàðèðàíà íÿêúäå, ùîì èìàø HDROP äåêëàðèðàí. Òâà å áàçîâ òèï â Óèíäîóñ. ß ÿ íàïèøè ñ 2 P-òà. Èñêà LPPOINT à íå LPOINT.LP îçíà÷àâà long pointer(32 áèòîâ ïðè òåáå ïðåäïîëàãàì), äåìåê öÿëîòî å long pointer êúì POINT ñòðóêòóðà, êàêòî êàçàõ âå÷å.EVGA X299 FTW K|i9-7960X@4.7|4x8 Patriot Viper Steel 4000|GTX 1660 Ti|970 EVO 1 TB|Seasonic Focus GX-1000|Xigmatek Elysium|Êèëî è ïîëîâèíà âîäà
Rampage IV Extreme BE|E5-1680v2@4.7|4x4 HyperX 1866|Cougar Aqua 240|GTX 1050 Ti|970 EVO 1/4 TB|CM 850 SilentPro|HAF-X|Áåç èñòèíñêî âîäíî
-
25th February 2007 07:36 #5Registered User
Join Date: Aug:2006
Location: Ïëîâäèâ
Posts: 4,052
Îïðàâèõ ãî àç, êîãàòî 'íåùîòî' íà êîåòî èñêàì àäðåñà å îò äÿñíàòà ñòðàíà, ÿâíî @ âðúùà àäðåñ.
@Info.Point è çàáðàâè ïúðâèÿ ïðîáëåì, ñëåä òîâà ïðîñòî òðÿáâàøå äà âêëþ÷à äåëôè-ñúâìåñòèì ðåæèì çà 2-ðèÿ èëè ïàê äà äîáàâÿ @ íà åäíî ìÿñòî.




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè