| |
|
|
 H.Brill | là on sans Drag&Drop im PC-Alltag presque pas plus auskommt, sollte cet aussi dans XProfan (X3) absolument integriert volonté. Sowohl dedans des eigenen Profanfenster + Controls (Listboxen usw.)comme aussi de Fremdprogrammen gedragte Fichiers usw.
Zumindest 3 Formate wären mir là important : Textes, Fichiers et Bilder.
peut-être peux Roland là oui quoi einsteiger bzw. User- freundliches bricoler. avec den entsprechenden API- Funktionen et den CallBack-Funktionen de XProfan pourrait quelque chose comme machbar son. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 16.11.2015 ▲ |
|
|
|
|
 ByteAttack | allez doch déjà eigentlich relativ simple... KompilierenMarqueSéparation $H windows.ph
$H messages.ph
Def DragAcceptFiles(2) !"SHELL32","DragAcceptFiles"
Def DragFinish(1) !"SHELL32","DragFinish"
Def DragQueryFile(4) !"SHELL32","DragQueryFileA"
Déclarer Anzahl&,Zähler&,PFilename#
Windowstyle 31
Windowtitle "Listbox avec File Drag and Drop"' pas trop verwechseln avec Plug&Pray
Fenêtre 0,0-640,440
var Filelistbox&=Créer(ListBox,%hwnd,»,20,20,500,300)
DragAcceptFiles(FileListbox&,1)
Usermessages ~wm_close,563' 563 <---- Drag&Drop
WhileNot (%Umessage = ~wm_close) & (&uWnd = %hWnd)
WaitInput
IF %UMESSAGE=563' DragDrop Ereignis
DIM PFilename#,1024
ANZAHL&=DragQueryFile(&UWParam,$FFFFFFFF,PFilename#,1024)
Usecursor 2
Tandis que Zähler&<Anzahl&
Claire PFilename#
DragQueryFile(&UWParam,Zähler&,PFilename#,1024)
AddStrings(FileListbox&,String$(PFilename#,0))
Inc ZÄHLER&
Endwhile
Usecursor 0
Dispose PFilename#
DragFinish(&UWParam)
Endif
Endwhile
|
|
|
| |
|
|
|
 ByteAttack | avec KompilierenMarqueSéparation peux Du ensuite qui Fichiers entier simple ermitteln, quel Typ c'est.
Beispiel: KompilierenMarqueSéparation $H windows.ph
$H messages.ph
$H shellapi.ph
Usermessages ~wm_close,563' 563 <---- Drag&Drop
DEF PathFindExtension(1) ! "Shlwapi","PathFindExtensionA"
DEF GetFileTitle(3) ! "COMDLG32","GetFileTitleA"
Déclarer PFilename#,ext#
DIM PFilename#,1024
Faible ext#,20
Proc DateiSplit
Paramètres Dossier$
' seulement Dossier
var NurDatei$=Space$(1024)
GetFileTitle(Addr(Dossier$), Addr(NurDatei$), Len(NurDatei$))
NurDatei$=Trim$(NurDatei$)
' Extension
Claire ext#
ext# = PathFindExtension(addr(Dossier$))
var ext$ = string$(ext#,0)
' seulement Pfad
var NurPfad$=left$(Dossier$,len(Dossier$)-len(NurDatei$))
AddStrings(Filelistbox&,NurDatei$+"|"+NurPfad$+"|"+ext$)
ENDPROC
Proc DragDrop
Claire PFilename#
var ANZAHL&=~DragQueryFile(&UWParam,$FFFFFFFF,PFilename#,1024)
var Zähler&=0
Usecursor 2
Tandis que Zähler&<Anzahl&
Claire PFilename#
~DragQueryFile(&UWParam,Zähler&,PFilename#,1024)
DateiSplit String$(PFilename#,0)
Inc ZÄHLER&
Endwhile
Usecursor 0
~DragFinish(&UWParam)
ENDPROC
Windowstyle 24
Windowtitle "Drag and Drop"
Fenêtre ((%maxx/2)-260),((%maxY/2)-175)-520,350
Cls ~GetSysColor(15)
var listdef$="Datei;0;100;Pfad;0;310;Endung;0;60"
var Filelistbox&=Créer("GridBox",%hwnd,listdef$,0,5,5,500,300)
~DragAcceptFiles(%hwnd,1)
WhileNot (%Umessage = ~wm_close) & (&uWnd = %hWnd)
WaitInput
Si %UMESSAGE=563' DragDrop Ereignis
DragDrop
Endif
Endwhile
Dispose PFilename#
dispose ext#
|
|
|
| |
|
|
|
 H.Brill | merci, je meinte maintenant plutôt, qui qui Aktionen (Drag et Drop) im eigenen Programme stattfinden. alors z.B. Text de einer Listbox zur anderen ou bien aussi Bilder et Buttons sur un Static.
je voudrais volontiers Bilder, qui dans einer Toolbar mittels ImageList angezeigt volonté, sur un Static - Contrôle kopieren. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 17.11.2015 ▲ |
|
|
|
|
 ByteAttack | c'est mais déjà heftig... il peut qui commctrl.ph nutzen um z.B. KompilierenMarqueSéparation pour qui Imageliste trop nutzen, mais dans comment large on cela pour une Toolbar nutzen peux, entzieht sich mir justement. je mets mich la fois ran...  |
|
|
| |
|
|
|
 ByteAttack | soweit je cela maintenant dans mon kleinen Gehirn verstanden habe, allez qui quoi Du avant la hâte seulement avec einem Rebar-Contrôle... |
|
|
| |
|
|
|
 H.Brill | bof, je dachte à quelque chose comme, comme qui meisten IDE's avec einem Visualdesigner anbieten, z.B. VisualBasic. là peux on oui aussi une Button anfassen et dans cela Gitter platzieren.
Pour mon Zwecke veux je aussi so une Bitmap ou bien Icon anfassen peut et dans un Static avec einem Gitter punktgenau plazieren peut.
zum Thema Toolbar : qui numéro des Icônes dans qui ImageList bekommt on oui léger, si on de %MenuItem z.B. 2000 abzieht, si qui Menüpunkte chez @Créer("Toolbar",...) ab 2000 commencer. alors soweit suis je déjà. Mir fehlt seulement encore qui grafische effet de Drag&Drop.
PS: là Drag&Drop le son API aussi benutzerdefinierte données aktzeptiert, pourrait peut-être. quelque chose comme possible son. suis arrêt malheureusement pas so qui Experte dans Sachen API. (cela avec qui Usermessage 563 J'ai eu aussi encore pas gewußt). |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 17.11.2015 ▲ |
|
|
|
|
 ByteAttack | je hab là encore une quelque chose älteren Code, peut-être hilft qui Dir oui... KompilierenMarqueSéparationUSERMESSAGES 16
$H Windows.ph
$H Commctrl.ph
'################ Globale Variablen
var Bild&=create(«PCSI», 0, "TOOLBAR32")
var IcoList& = create("ImageList",32,32,Bild&,rgb(192,192,192))
var AnzIcon%=73
var Zeilengrenze%=5
Déclarer EndeY%,IstNeuX%,px%,py%,Temp$,MX%,MY%,GI%
Proc UpdateWindow
Cas width(%hwnd,1)<800:SetWindowPos %hwnd=%WinLeft,%WinTop-800,height(%hwnd,1);0
Cas height(%hwnd,1)<600:SetWindowPos %hwnd=%WinLeft,%WinTop-width(%hwnd,1),600;0
TB_AufBau
ENDPROC
'################################################################################################################# Toolbar aufbauen
'###################################################################################################
Proc TB_AufBau
Déclarer WL%
ClearList GB&
USEP 0,1,~GetSysColor(15)
UseBrush 1,~GetSysColor(15)
Rectangle 0,0-%maxx,42
USEP 0,1,~GetSysColor(22)
Line 0,42-%maxx,42
var AnzProZeile%=width(%hwnd)/39
si AnzIcon%<AnzProZeile%
WL%=AnzIcon%
d'autre
WL%=AnzProZeile%
endif
var IcoX%=3
var IcoIdx%=0
WhileLoop WL%
DrawIcon IcoList&,IcoIdx%,IcoX%,4
AddStrings(GB&,Str$(IcoX%)+"|"+"4"+"|"+Str$(IcoIdx%))
IcoX%=IcoX%+39
Inc IcoIdx%
Endwhile
ENDPROC
Proc DragDrop
Tandis que %mousepressed'--Bouton de la souris wird gehalten
UseExtCursor %HINSTANCE, "DRUCKER"
~ImageList_DragMove(%mousex,%mousey)
Endwhile
Titre de la fenêtre "iconIndex: "+Str$(GI%)+" - "+Str$(%mousex)+"|"+Str$(%mousey)
ENDPROC
Proc DrawRaster
Paramètres Rasterweite%
USEP 0,1,0
UseBrush 1,0
var rx%=Rasterweite%
var ry%=Rasterweite%+60
WhileNot ry%>=%maxY
WhileNot rx%>=%maxx
SetPixel rx%,ry%,0
rx%=rx%+Rasterweite%
Endwhile
rx%=Rasterweite%
ry%=ry%+Rasterweite%
Endwhile
ENDPROC
'###################### HAUPTFENSTER
Fenêtre Style 31
Titre de la fenêtre "ToolBarTool V 1.01"
Fenêtre %maxx+5,5 - 800,600
Cls ~GetSysColor(16)
UseFont "Verdana",16,0,0,0,0
var font&=Créer("Font","Verdana",16,0,0,0,0)
SetDialogFont 1
var GB&=Créer("Grid",3,0)
var GBNeu&=Créer("Grid",3,0)
DrawRaster 10
UpdateWindow
SetWindowPos %hwnd=((%maxx/2)-400),((%maxY/2)-300)-800,600;0
var xOff&=~GetSystemMetrics(32)'-------Dicke des Fensterrandes
var yOff&=~GetSystemMetrics(4)+xOff&'--Hauteur qui Titelleiste + Fensterrand
' ################ HAUPTSCHLEIFE
WhileNot %Umessage=16
WaitInput
Si %Key=4
UpdateWindow
EndIf
WhileLoop 0, GetCount(GB&)-1
Temp$=GetString$(GB&,&loop)
MX%=val($ Substr(Temp$,1,"|"))
MY%=val($ Substr(Temp$,2,"|"))
si Souris(MX%,MY%-MX%+32,MY%+32)
GI%=val($ Substr(Temp$,3,"|"))
~ImageList_BeginDrag(IcoList&,GI%,(%mousex-xOff&-MX%),(%mousey-yOff&-MY%))
~ImageList_DragEnter(%hwnd,%mousex,%mousey)
DragDrop
~ImageList_EndDrag()
UseCursor 0
endif
Endwhile
Endwhile
deleteobject IcoList&
|
|
|
| |
|
|
|
 H.Brill | merci, cela hilft mir très. KompilierenMarqueSéparation cela bringt mir ensuite cela gewünschte Ergebnis.
PS: qui Toolbar brauche je oui pas absolument. je peux qui ImageListe oui aussi so zeichnen.
Doit mir den Code la fois richtig reinziehen, avec cela je sais, quoi là abgeht. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 17.11.2015 ▲ |
|
|
|
|
 ByteAttack | oui - c'est un älterer Code de mir. hab ihn maintenant gar pas angepasst.
 |
|
|
| |
|
|
|
 H.Brill | maintenant doit je seulement encore erreichen, qui on unten aussi qui Position korrigieren peux. on trifft oui pas toujours juste ins Schwarze.
alors encore un Drag&Drop dedans des Rasters.
avec cela du verstehst, quoi je mon : Etwa den effet, comment beim Windows Solitärspiel. si on qui carte unten anhängt, rastet qui unten un, si on une etwaige Postion erreicht hat. |
|
|
| Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 17.11.2015 ▲ |
|
|
|
|
 Jörg Sellmeyer | Pour cette pourrait ensuite Between(....) qui richtige candidat son. si du qui Koordinaten pour dein Raster la hâte (dans einem Array ou bien Grid), peux du ensuite avec Between überprüfen, dans welchem Raster du landest. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 17.11.2015 ▲ |
|
|
|