![]() |
Anzeige:
|
|
|||||||
| XProfan Alles rund um die Programmiersprache XProfan. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Hallo XProfangemeinde,
ich suche nach einer Möglichkeit, aus einer geöffneten *.txt, oder eMail, oder ... , markierten Text in ein EDIT per drag & drop zu bekommen. Datei- oder Ordnernamen aus dem Explorer kann ich soweit. Aber Text ohne Strg+C und Strg+V zu übernehmen schaffe ich nicht. Gruß Thomas |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Dazu muss deine Quellanwendung das mal unterstützen, Notepad kann das z.B. nicht. Thunderbird oder der Profaneditor von Andreas können es. Wenn dein Edit Drop-Ereignisse aufnehmen kann sollte es egal sein ob das eine Datei aus dem Explorer oder ein Text aus einer Anwendung ist.
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#3 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.094
|
Editfelder unterstützen das von Hause aus - soweit ich weiss - nicht. Da wirst du um OLE wohl nicht umhin kommen. Schau mal hier: Adding Drop Source Capabilities - Win32 Programmer's Reference
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#4 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Hmmm, dann bleib ich wohl beim RTF-Edit. Den Script noch etwas aufgehübscht mit Dieters RTF.pcu und Franks ListView.dll. oder hat doch noch einer eine Lösung fürs einfach EDIT.
Code:
$H Messages.ph
$H Windows.ph
Def GetSysColor(1) !"USER32","GetSysColor"
var Prog_Dir$ = @GetDir$("@") ' aktuelles Verzeichnis
Window 800,600
Cls GetSysColor(15)
SET("TRUECOLOR",1)
var Font&=Create("Font","MS Sans Serif",16,0,0,0,0)
SETDIALOGFONT Font&
WindowTitle "Adressen-Import per drag & drop aus einer eMail"
'var ch1&=CreateCheckBox(%hwnd," Daten automatisch einlesen",120,12,400,24)
CreateText(%hwnd,"Daten",10,45,90,20)
var edi&=@Create("RichEdit",%hwnd,"",120,40,560,48)
var text$ = "PassNummer;3;180;Vorname;0;200;Nachname;0;200;eMail;0;150"
var hGrid& = Create("GridBox", %hwnd, Text$, 3, 10, 100, 770, 400)
Var LV_font& = @Create("Font","Verdana",16,0,0,0,0)
SetFont hGrid&, LV_font&
var zu& = CreateButton(%hwnd,"Eintrag",700,40,80,24)
var sich& = CreateButton(%hwnd,"Speichern",700,516,80,24)
LADEN
while 1
WaitInput
case %key=2 : BREAK
case @Clicked(zu&): EINTRAG
case @Clicked(sich&): SPEICHERN
Endwhile
DeleteObject font&
DeleteObject LV_font&
end
Proc LADEN
Declare zeile$
Assign #2,Prog_Dir$+"\\Mitglieder.csv"
Reset #2
If %IOResult
MessageBox("Datei kann nicht geöffnet werden.","Hinweis",48)
Else
WhileNot @EOF(#2)
Input #2, Zeile$
zeile$=Translate$(zeile$,";","|")
AddString(hGrid&,Zeile$)
EndWhile
Close #2
EndIf
EndProc
Proc EINTRAG
Declare zeile$
Zeile$ = @GetText$(edi&,0)
zeile$=Translate$(zeile$,";","|")
zeile$=Translate$(zeile$,",","|")
zeile$=Translate$(zeile$," ","|")
If (len(Zeile$,"|") > 1)
AddString(hGrid&,Zeile$)
DestroyWindow(edi&)
edi&=@Create("RichEdit",%hwnd,"",120,40,560,48)
EndIf
EndProc
PROC SPEICHERN
Assign #2,Translate$(Prog_Dir$,"\","\\")+"\\Mitglieder.csv"
Rewrite #2
WhileLoop @GetCount(hGrid&)
Text$=Translate$(@GetString$(hGrid&,(&loop-1)),"|",";")
Print #2,Text$
EndWhile
Close #2
MessageBox("Die Datei wurde gespeichert!","Hinweis",48)
Endproc
|
|
|
|
|
|
#5 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Hallo Thomas,
versuchs mal damit, da nicht direkt ins edit gedropt wird sollte eigentlich jedes Contoll laufen. Nicht getestet. Code:
'Autor Dieter Zornow
'freeware
proc Initdragdrop
Parameters hdl&
External("SHELL32","DragAcceptFiles",hdl&,1)
endproc
Proc deinitdragdrop
parameters hdl&
External("SHELL32","DragAcceptFiles",hdl&,0)
endproc
proc Dragfiles
Parameters list&
Clearlist
Declare count&,Dropbereich#,dropfilename$,param$,ext$
Dim dropbereich#,1024
count&= External("SHELL32","DragQueryFileA",&WParam,$FFFFFFFF,Dropbereich#,1024)
if count& = 1
External("SHELL32","DragQueryFileA",&WParam,0,Dropbereich#,1024)
dropfilename$ = String$(Dropbereich#,0)
if Upper$(substr$(dropfilename$,-1,".")) = "LNK" 'falls ein link gedropt wird
dropfilename$ = ReadLinkPath(dropfilename$)
endif
Case dropfilename$ <> "":AddString dropfilename$
else
Whileloop 0,count&-1
External("SHELL32","DragQueryFileA",&WParam,&loop,Dropbereich#,1024)
dropfilename$ = String$(Dropbereich#,0)
case dropfilename$ <> "":AddString dropfilename$
EndWhile
endif
External("SHELL32","DragFinish",&WParam)
dispose dropbereich#
whileloop 0, %getcount
SetText list&,gettext$(list&)+ListBoxItem$(&loop)
endwhile
Clearlist
endproc
'Beispiel
window 800,600
Usermessages 563
Var edit& = Create("Multiedit",%Hwnd,"",5,5,770,530)
Initdragdrop(%hwnd)
while 1
Waitinput
Case %key = 2:break
IF %Umessage = 563
Dragfiles(edit&,0)
endif
endwhile
deinitdragdrop(%Hwnd)
end
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
|
#6 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Hallo Dieter,
im Moment läuft das bei mir nicht. Keine Reaktion von der Usermessage 563 und der Curser bleibt ein Kreis mit Schägstrich. Mal sehen, ob ich im Tagesverlauf Zeit habe, den Script lauffähig zu bekommen. Gruß Thomas |
|
|
|
|
|
#7 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Hallo Thomas,
dann versuche mal eine Datei aus dem Explorer zu dropen ob es grundsätzlich geht. Ich vermute das D&D mit markierten Wörtern funktioniert nur innerhalb der jeweiligen Anwendung also eher ein Verschieben innerhalb und nicht das Dropen in ein anderes Programm.
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#8 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Ja Dieter, aus dem Explorer kann der Dateiname übernommen werden.
Ich glaube dieses Thema endet wie das mit dem Laufwerkstyp einer Festplatte an USB. Über das RichEdit bekomme ich alles was zu verschieben ist und kann bei Bedarf nachgearbeitet werden. Wenn der Textstring direkt ins Grid gezogen werden soll, muß ich halt noch mal ran. Läuft der Script unter WIN7 ? Code:
$H Messages.ph
$H Windows.ph
$H RichEdit.ph
Def GetSysColor(1) !"USER32","GetSysColor"
Def @CreateWindowEx(12) ! "USER32","CreateWindowExA"
Def SetWindowLong(3) !"USER32", "SetWindowLongA"
Def GetWindowLong(2) !"USER32", "GetWindowLongA"
def SetWndSize(3) ~SetWindowPos(&(1),0,0,0,%(2),%(3),~SWP_NOMOVE | ~SWP_NOZORDER)
Def SetEditNumeric(1) SetWindowLong(@&(1),-16, (GetWindowLong(@&(1),-16) | $2002))
var RtfDll&=usedll("riched32.dll")
var Prog_Dir$ = @GetDir$("@") ' aktuelles Verzeichnis
var a$=Chr$(13)+Chr$(10)
Windowstyle 538
Window 0,0 - 800,360
Cls GetSysColor(15)
SET("TRUECOLOR",1)
var Font&=Create("Font","MS Sans Serif",16,0,0,0,0)
SETDIALOGFONT Font&
WindowTitle "Adressen-Import per drag & drop aus einer eMail"
Declare Edi& ' RichEdit
LOESCH
var Edi1& = @Create("Edit",%hwnd,"",10,70,179,22)
var Edi2& = @Create("Edit",%hwnd,"",190,70,199,22)
var Edi3& = @Create("Edit",%hwnd,"",390,70,199,22)
var Edi4& = @Create("Edit",%hwnd,"",590,70,149,22)
SetEditNumeric(Edi1&)
EnableWindow edi1&,0
EnableWindow edi2&,0
EnableWindow edi3&,0
EnableWindow edi4&,0
var text$ = "PassNummer;3;180;Vorname;0;200;Nachname;0;200;eMail;0;150"
var hGrid& = Create("GridBox", %hwnd, Text$, 0, 10, 104, 770, 180)
Var LV_font& = @Create("Font","Verdana",16,0,0,0,0)
SetFont hGrid&, LV_font&
text$="Datenfeld löschen"
var L_edi& = CONTROL("BUTTON",text$, $54012000,690,10,90,48, %HWnd,1, %HINSTANCE)
SetFont L_edi&, font&
text$="Daten übenehmen"
var zu& = CONTROL("BUTTON",text$, $54012000,590,10,90,48, %HWnd,1, %HINSTANCE)
SetFont zu&, font&
var OK_aend& = CreateButton(%hwnd,"+",744,70,20,24)
var OK_abbr& = CreateButton(%hwnd,"-",765,70,20,24)
@Create("Tooltip",%hwnd,OK_aend&,"Änderung übernehmen")
@Create("Tooltip",%hwnd,OK_abbr&,"Änderung abbrechen")
EnableWindow OK_abbr&,0
EnableWindow OK_aend&,0
var L_loes& = CreateButton(%hwnd,"markierte Zeile löschen",10,292,180,24)
var L_aend& = CreateButton(%hwnd,"markierte Zeile ändern",200,292,180,24)
var sich& = CreateButton(%hwnd,"Speichern",700,292,80,24)
LADEN
while 1
WaitInput
case %key=2 : BREAK
case GetFocus(L_edi&): LOESCH
case GetFocus(zu&): EINTRAG
case GetFocus(sich&): SPEICHERN
case GetFocus(L_loes&) : LV_DELETE
case GetFocus(L_aend&) : LV_AEND
Endwhile
DeleteObject font&
DeleteObject LV_font&
destroywindow(Edi&)
destroywindow(zu&)
destroywindow(L_Edi&)
freedll rtfDll&
end
Proc LV_AEND
WhileLoop 0,(@GetCount(hGrid&)-1)
If GetState(hGrid&, &loop) > 0
LV_ITEM GetString$(hGrid&,&loop),&loop
BREAK
EndIf
EndWhile
setfocus(%hwnd)
EndProc
Proc LV_ITEM
Parameters Item$,Item%
EnableWindow edi1&,1
EnableWindow edi2&,1
EnableWindow edi3&,1
EnableWindow edi4&,1
EnableWindow OK_abbr&,1
EnableWindow OK_aend&,1
SetText edi1&, Substr$(item$,1,"|")
SetText edi2&, Substr$(item$,2,"|")
SetText edi3&, Substr$(item$,3,"|")
SetText edi4&, Substr$(item$,4,"|")
While 1
WaitInput
If GetFocus(OK_aend&)
SetText hGrid&, Item%, 0, trim$(GetText$(edi1&))
SetText hGrid&, Item%, 1, trim$(GetText$(edi2&))
SetText hGrid&, Item%, 2, trim$(GetText$(edi3&))
SetText hGrid&, Item%, 3, trim$(GetText$(edi4&))
BREAK
ElseIf GetFocus(OK_abbr&)
BREAK
EndIf
EndWhile
SetText edi1&, ""
SetText edi2&, ""
SetText edi3&, ""
SetText edi4&, ""
EnableWindow OK_abbr&,0
EnableWindow OK_aend&,0
EnableWindow edi1&,0
EnableWindow edi2&,0
EnableWindow edi3&,0
EnableWindow edi4&,0
EndProc
Proc LV_DELETE
WhileLoop 0,(@GetCount(hGrid&)-1)
If GetState(hGrid&, &loop) > 0
@DeleteString (hGrid&,&loop)
BREAK
EndIf
EndWhile
setfocus(%hwnd)
EndProc
Proc LOESCH
DestroyWindow(edi&)
Edi&=control("RichEdit20A","",$500050c4,10,10,0,0,%hwnd,5000,0)
~SetWindowLong(Edi&,~GWL_EXSTYLE,0)'--Rand entfernen
SetWndSize(Edi&,(560,83466),(48,83466))
EndProc
Proc LADEN
Declare zeile$
Assign #2,Prog_Dir$+"\\Mitglieder.csv"
Reset #2
If %IOResult
MessageBox("Die Datei\n\nMitglieder.csv\n\nkann nicht geöffnet werden.","Hinweis",48)
Else
WhileNot @EOF(#2)
Input #2, Zeile$
zeile$=Translate$(zeile$,";","|")
AddString(hGrid&,Zeile$)
EndWhile
Close #2
EndIf
EndProc
Proc EINTRAG
Declare zeile$
Zeile$ = @GetText$(edi&,0)
zeile$=Translate$(zeile$," ",";")
zeile$=Translate$(zeile$,",",";")
WhileLoop 100
zeile$=Translate$(zeile$,";;",";")
EndWhile
zeile$=Translate$(zeile$,";","|")
zeile$=Translate$(zeile$,a$," ")
If (len(Zeile$,"|") > 1)
@InsertString(hGrid&,0,Zeile$)
LOESCH
EndIf
EndProc
PROC SPEICHERN
Assign #2,Translate$(Prog_Dir$,"\","\\")+"\\Mitglieder.csv"
Rewrite #2
WhileLoop @GetCount(hGrid&)
Text$=Translate$(@GetString$(hGrid&,(&loop-1)),"|",";")
Print #2,Text$
EndWhile
Close #2
MessageBox("Die Datei wurde gespeichert!","Hinweis",48)
Endproc
Geändert von THFR (24.01.2011 um 19:20 Uhr) Grund: Kleine Ergänzungen |
|
|
|
|
|
#9 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Hallo Thomas,
wenn es mit Dateien geht liegt bei einfachem Text aus einer Anwendung kein Dropereignis vor, deshalb auch keine Message 563. Vom oberen Richedit oder auch Edit etwas ins Grid zu ziehen dürfte mit ein paar Tricks, "Pseudo Drag & Drop" einfach zu realisieren sein. Dein Script läuft unter Win 7
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#10 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 13.02.2009
Beiträge: 19
|
Hi Leute!
Hier ein Beispiel, wie Profan als Drop-Ziel für Dateien ( aus Windows) oder Text (aus WordPad, Word, IE, FF usw.) verwendet wird: Code:
window 750,250
$H Windows.ph
usermessages 16
declare FORMATETC#:dim FORMATETC#,20
long FORMATETC#,4=0,1,-1,1
struct STGMEDIUM=tymed&,Value&,IUnknown&
declare STGMEDIUM#:dim STGMEDIUM#,STGMEDIUM
proc GetData'-------------------------------------------------GetData
parameters IFace&
var VTable&=long(IFace&,0)
return call(long(VTable&,12),IFace&,FORMATETC#,STGMEDIUM#)
endproc'-------------------------------------------------------------
proc Dummy'-----------------------------------------------------Dummy
return 0'--E_OK
endproc'-------------------------------------------------------------
proc Drop'-------------------------------------------------------Drop
parameters This&,IDataObject&,KeyState&,X&,Y&
long FORMATETC#,0=~CF_HDROP'----------------Format: DropFiles
ifnot GetData(IDataObject&)
var Mem&=~GlobalLock(STGMEDIUM#.Value&)
print "Datei:",stringw$(Mem&,20)
~GlobalUnlock(STGMEDIUM#.Value&)
~GlobalFree(STGMEDIUM#.Value&)
endif
long FORMATETC#,0=~CF_TEXT'-----------------Format: Text
ifnot GetData(IDataObject&)
var Mem&=~GlobalLock(STGMEDIUM#.Value&)
print "Text:",string$(Mem&,0)
~GlobalUnlock(STGMEDIUM#.Value&)
~GlobalFree(STGMEDIUM#.Value&)
endif
return 0'--E_OK
endproc'-------------------------------------------------------------
declare IDropTarget#,IDropTarget&
dim IDropTarget#,32'-----------------------IDropTarget-Interface
long IDropTarget#, 0=procaddr("Dummy",2)'--QueryInterface
long IDropTarget#, 4=procaddr("Dummy",1)'--AddRef
long IDropTarget#, 8=procaddr("Dummy",1)'--Release
long IDropTarget#,12=procaddr("Dummy",5)'--DragEnter
long IDropTarget#,16=procaddr("Dummy",5)'--DragOver
long IDropTarget#,20=procaddr("Dummy",1)'--DragLeave
long IDropTarget#,24=procaddr("Drop",5)'---Drop
long IDropTarget#,28=IDropTarget#
IDropTarget&=IDropTarget#+28
external("ole32","OleInitialize",0)
external("ole32","RegisterDragDrop",%hwnd,IDropTarget&)
while 1
waitinput
case %umessage=16:break
endwhile
external("ole32","RevokeDragDrop",%hwnd)
external("ole32","OleUninitialize")
dispose IDropTarget#,FORMATETC#,STGMEDIUM#
phorum - 2 - PROFAN-Programmierung - Re: Drag&Drop Target fr URLs phorum - 2 - PROFAN-Programmierung - Re: Drag & Drop SeeYou Pascal |
|
|
|
|
|
|
#11 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Hallo Pascal,
ich habe das gerade mal mit Thunderbird getestet, geht leider nicht. weiß nicht ob es an Win 7 liegt. Mit Thunderbird kann ich in jedem Fall markierte Texte holen.
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#12 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Thunderbird habe ich nicht. Aber unter XP keine Probleme aus vielen Anwendungen die Texte zu übernehmen. Aufpassen muß man aber bei einigen Anwendungen. Da wird der markierte Teil ausgeschnitten und nicht kopiert.
Habe mit Pascals Vorschlag noch ein wenig experementiert und die Datenübernahme vom EDIT über Grid bis zum Item geht bei mir. Wie sieht es unter WIN 7 aus? Im Grid Beispiel wird ein Text aufgeteilt beim Leerzeichen, Komma und Semikolon. Kommen mehrere Trennmerkmale zusammen vor -"abc,, 123b" = "abc|123b"-, wird es auf eins reduziert. Ein Wort in den freien Teil des Grids gezogen erzeugt eine neue Zeile. Wird es auf ein vorhandenes Item gezogen, wird dessen Text ersetzt. Code:
$H Windows.ph
$H Messages.ph
$H commctrl.ph
usermessages 16
Def GetSysColor(1) !"USER32","GetSysColor"
Def WindowFromPoint(2)!"USER32","WindowFromPoint"
Def GetCursorPos(1) !"USER32","GetCursorPos"
Declare p#,h&
Dim p#,8
declare FORMATETC#:dim FORMATETC#,20
long FORMATETC#,4=0,1,-1,1
struct STGMEDIUM=tymed&,Value&,IUnknown&
declare STGMEDIUM#:dim STGMEDIUM#,STGMEDIUM
proc GetData'-------------------------------------------------GetData
parameters IFace&
var VTable&=long(IFace&,0)
return call(long(VTable&,12),IFace&,FORMATETC#,STGMEDIUM#)
endproc'-------------------------------------------------------------
proc Dummy'-----------------------------------------------------Dummy
return 0'--E_OK
endproc'-------------------------------------------------------------
proc Drop'-------------------------------------------------------Drop
parameters This&,IDataObject&,KeyState&,X&,Y&
long FORMATETC#,0=~CF_HDROP'----------------Format: DropFiles
ifnot GetData(IDataObject&)
var Mem&=~GlobalLock(STGMEDIUM#.Value&)
INSERT stringw$(Mem&,20)
' print "Datei:",stringw$(Mem&,20)
~GlobalUnlock(STGMEDIUM#.Value&)
~GlobalFree(STGMEDIUM#.Value&)
endif
long FORMATETC#,0=~CF_TEXT'-----------------Format: Text
ifnot GetData(IDataObject&)
var Mem&=~GlobalLock(STGMEDIUM#.Value&)
INSERT string$(Mem&,0)
~GlobalUnlock(STGMEDIUM#.Value&)
~GlobalFree(STGMEDIUM#.Value&)
endif
return 0'--E_OK
endproc'-------------------------------------------------------------
Proc INSERT
Parameters Zeile$
var a$=Chr$(13)+Chr$(10) 'Zeilenumbruch
GetCursorPos(p#) ' Empfänger ist ?
h&=WindowFromPoint(Long(p#,0),Long(p#,4))
~GetCursorPos(HIT#)
~ScreenToClient(Lb&,HIT#)
sendmessage(Lb&,~LVM_HITTEST,0,HIT#)'---------------------Infos über Cursor in Bezug auf Lv
sendmessage(Lb&,~LVM_SUBITEMHITTEST,0,HIT#)
zielx&= HIT#.SubItem&
ziely&= HIT#.Item&
If h&=edi&
SetText edi&,zeile$
ElseIf h&=Lb&
zeile$=Translate$(zeile$," ",";") 'Feldtrenner= Leerzeichen > werden ';'
zeile$=Translate$(zeile$,",",";") 'Feldtrenner= Komma > werden ';'
WhileLoop 100 'alle vielfachen ';' auf einen reduzieren
zeile$=Translate$(zeile$,";;",";")
EndWhile
zeile$=Translate$(zeile$,";","|") ' ';' für Gridbox in '|'
zeile$=Translate$(zeile$,a$," ") ' Zeilenumbruch entfernen
If (len(Zeile$,"|") > 1) ' Anzahl der Felder > 1
@InsertString(Lb&,0,Zeile$)
Else
If ziely&=-1
@InsertString(Lb&,0,"|||")
SetText Lb&,0, zielx&, trim$(zeile$)
Else
SetText Lb&,ziely&, zielx&, trim$(zeile$)
EndIf
EndIf
EndIf
EndProc'-------------------------------------------------------------
'=========================================================================
window 670,250
Cls GetSysColor(15)
var Font&=Create("Font","MS Sans Serif",16,0,0,0,0)
SETDIALOGFONT Font&
CreateText(%hwnd,"Eingabe:",10,12,90,22)
var edi&= CreateEdit(%hwnd,"",100,10,300,22)
var text$ = "PassNummer;3;150;Vorname;0;180;Nachname;0;180;eMail;0;100"
var Lb& = Create("GridBox", %hwnd, Text$, 0, 10, 44, 640, 140)
declare IDropTarget#,IDropTarget&
dim IDropTarget#,32'-----------------------IDropTarget-Interface
long IDropTarget#, 0=procaddr("Dummy",2)'--QueryInterface
long IDropTarget#, 4=procaddr("Dummy",1)'--AddRef
long IDropTarget#, 8=procaddr("Dummy",1)'--Release
long IDropTarget#,12=procaddr("Dummy",5)'--DragEnter
long IDropTarget#,16=procaddr("Dummy",5)'--DragOver
long IDropTarget#,20=procaddr("Dummy",1)'--DragLeave
long IDropTarget#,24=procaddr("Drop",5)'---Drop
long IDropTarget#,28=IDropTarget#
IDropTarget&=IDropTarget#+28
external("ole32","OleInitialize",0)
external("ole32","RegisterDragDrop",%hwnd,IDropTarget&)
declare HIT#'------LVHITTESTINFO-Struktur
struct HIT=x&,y&,Flags&,Item&,SubItem&
dim Hit#,HIT
declare ziely&,zielx&
while 1
waitinput
case %umessage=16:break
endwhile
external("ole32","RevokeDragDrop",%hwnd)
external("ole32","OleUninitialize")
dispose IDropTarget#,FORMATETC#,STGMEDIUM#,p#,hit#
DeleteObject font&
end
Dank an Pascal. Gruß Thomas |
|
|
|
|
|
#13 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 09.02.2009
Ort: Bangkok
Beiträge: 686
|
Hallo Thomas,
ich kann aus einem Richedit heraus ins Edit und ins Grid droppen, aber nicht vom Edit ins Grid.
__________________
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai. http://dieterzornow.gmxhome.de |
|
|
|
|
|
#14 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Dank an meinen treuen Tester Dieter.
@Dieter, dass war in diesem Fall auch nicht vorgesehen. Bisher hatte ich als "Empfänger" nur das RichEdit getestet. Es geht also auch ein normales Edit. Die Sache könnte bei meinem Vereinsprogramm spätestens mit der Einführung von SEPA interessant werden. Wenn dann IBAN und Swift per eMail kommen könnte man sie in die entsprechenden Felder ziehen. Gruß Thomas |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| The Drag & Drop.io 2.0.1 | Paule | 5.) Firefox & Thunderbird PlugIns | 0 | 31.05.2010 16:20 |
| virtual box? drag&drop? | trustme12 | Software - Allgemein | 0 | 16.05.2007 17:27 |
| Wandlung CD ---->MP3 (Drag&Drop) | Harlekan | Software - Allgemein | 4 | 30.03.2007 11:59 |
| Drag & Drop | rumpel | Windows XP | 6 | 04.01.2007 14:48 |
| Drag und Drop von TextBox | Magier | Visual Basic, Visual Basic.NET | 2 | 23.09.2005 14:00 |