Français
Wünsche et Anregungen

Propositions pour künftige Versionen

Drag&Drop

 

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

 
XProfan X3
Website:  [...] 
Facebook:  [...] 
16.11.2015  
 




ByteAttack
avec
KompilierenMarqueSéparation
DEF PathFindExtension(1) ! "Shlwapi","PathFindExtensionA"
DEF GetFileTitle(3) ! "COMDLG32","GetFileTitleA"

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#
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
16.11.2015  
 




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...
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
17.11.2015  
 




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...
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
17.11.2015  
 




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éparation
USERMESSAGES 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&
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
17.11.2015  
 




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.
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
17.11.2015  
 




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  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

14.822 Views

Untitledvor 0 min.
Gast.081527.01.2025
Sven Bader31.03.2023
funkheld12.12.2022
Walter11.12.2022
plus...

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie