Français
Wünsche et Anregungen

Propositions pour künftige Versionen

Drag&Drop

 
- page 1 -



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  
 



 
- page 1 -



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  
 



 
- page 2 -



ByteAttack
Wobei es dabei un "Problemchen" gibt, là on seulement qui Mauskoordinaten zurück bekommt et pas cela de qui ImageListe. Je après que wohin on maintenant cela Icon "anpackt" ist es unterschiedlich...
Hab là malheureusement (NOCH) aucun Solution
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
17.11.2015  
 




Michael
W.
pas dans Punkten, mais dans Kachelgröße penser...

Teile alles dans Quadrate un et arbeite ensuite avec Intersect(). avec cela pourrait on ensuite aussi Zielrähmchen mettons.

Hierhin??, ou bien Hierhin??? ...
 
XProfan X3
System: Windows 8/10, XProfan X4
Programmieren, das spannendste Detektivspiel der Welt.
17.11.2015  
 




H.Brill
merci,
d'abord doit je ensuite la fois cela Déplacer (Move) dedans
des Rasters hinbekommen.
 
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.
18.11.2015  
 




ByteAttack
So. Im Beispielcode habe je es maintenant so "gedeichselt", qui si on cela Icon "anfässt", qui Cursor simple dans qui Mitte des Icônes hüpft.
KompilierenMarqueSéparation
USERMESSAGES 16
 $H Windows.ph
 $H Commctrl.ph
 $H Messages.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%,bereich#,être#,erg&,erg2&,x&,y&,text$,b#,xneu&,ClientRect#
Faible être#,8
Faible b#,16
Faible bereich#,1024
Faible ClientRect#,16

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

        ~ImageList_DragMove(%mousex,%mousey)

    Endwhile

ENDPROC

Proc MausMove' mets den Mauszeiger toujours sur qui Mitte des Icônes

    ~GetCursorPos(être#)
    x&=Long(être#,0)
    y&=Long(être#,4)
    ~GetWindowRect(dummy&,b#)
    xneu&= Long(b#,0)+((GI%+1)*39)-19
    ~SetCursorPos(xneu&,Long(b#,4)+20)

ENDPROC

Proc DrawRaster

    Paramètres Rasterweite%,Rasterfarbe%
    var rx%=Rasterweite%
    var ry%=Rasterweite%+60

    WhileLoop 10' à cause de qui Geschwindigkeit seulement 10x et ensuite comme Bitmap dans den grenier

        Whileloop 10

            SetPixel rx%,ry%,Rasterfarbe%
            rx%=rx%+Rasterweite%

        Endwhile

        rx%=Rasterweite%
        ry%=ry%+Rasterweite%

    Endwhile

    MCLS Rasterweite%*10,Rasterweite%*10,BackGround%
    CopyBmpToMem Rasterweite%,Rasterweite%+60 - Rasterweite%*10,Rasterweite%*10 > 0,0
    rx%=Rasterweite%
    ry%=Rasterweite%+60

    WhileNot ry%>=%maxy

        WhileNot rx%>=%maxx

            MCopyBmp 0,0-Rasterweite%*10,Rasterweite%*10 > rx%,ry%;0
            rx%=rx%+Rasterweite%*10

        Endwhile

        rx%=Rasterweite%
        ry%=ry%+Rasterweite%*10

    Endwhile

ENDPROC

'###################### HAUPTFENSTER
Fenêtre Style 31
Titre de la fenêtre "Rastafari"
Fenêtre %maxx+5,5 - 800,600
var dummy&=Contrôle("Dialogue",»,$54000000,0,0,0,0,%hwnd,0,%HINSTANCE)
var BackGround%=~GetSysColor(15)
Cls BackGround%
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 8,RGB(0,0,0)
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
MausMove

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,"|"))
            MausMove' muss malheureusement so souvent :-(
            MausMove
            MausMove
            ~ImageList_BeginDrag(IcoList&,GI%,(%mousex-xOff&-MX%),(%mousey-yOff&-MY%))
            ~ImageList_DragEnter(%hwnd,%mousex,%mousey)
            DragDrop
            ~ImageList_EndDrag()
            UseCursor 0

        endif

    Endwhile

Endwhile

Dispose b#
Dispose être#
Dispose bereich#
Dispose ClientRect#
deleteobject IcoList&

1.506 kB
Bezeichnung:Beispiel exe
Hochgeladen:18.11.2015
Downloadcounter102
Download
4 kB
Bezeichnung:Beispielcode
Hochgeladen:18.11.2015
Downloadcounter120
Download
 
Website:  [...] 
Facebook:  [...] 
18.11.2015  
 




ByteAttack
Jörg Sellmeyer (17.11.15)
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.


cela wäre déjà un Mega-Array.... chez einem Raster pourrait on cela aussi simple berechnen...
KompilierenMarqueSéparation
USERMESSAGES 16
 $H Windows.ph
 $H Commctrl.ph
 $H Messages.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%,bereich#,être#,erg&,erg2&,x&,y&,text$,b#,xneu&,ClientRect#,GlobalRaster%
Faible être#,8
Faible b#,16
Faible bereich#,1024
Faible ClientRect#,16
var Ausrichten%=1' 0=Nicht am Raster ausrichten | 1=Am Raster ausrichten

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 Einrasten

    Déclarer DrawX%,DrawY%

    si Ausrichten%=0

        DrawIcon IcoList&,GI%,%MouseX-16,%MouseY-16
        Retour 0

    d'autre

        DrawX%=((%MouseX-16)/GlobalRaster%)
        DrawX%=DrawX%*GlobalRaster%
        DrawY%=((%MouseY-16)/GlobalRaster%)
        DrawY%=DrawY%*GlobalRaster%
        DrawIcon IcoList&,GI%,DrawX%,DrawY%

    endif

ENDPROC

Proc DragDrop

    Tandis que %mousepressed'--Bouton de la souris wird gehalten

        ~ImageList_DragMove(%mousex,%mousey)

    Endwhile

ENDPROC

Proc MausMove' mets den Mauszeiger toujours sur qui Mitte des Icônes

    ~GetCursorPos(être#)
    x&=Long(être#,0)
    y&=Long(être#,4)
    ~GetWindowRect(dummy&,b#)
    xneu&= Long(b#,0)+((GI%+1)*39)-19
    ~SetCursorPos(xneu&,Long(b#,4)+20)

ENDPROC

Proc DrawRaster

    Paramètres Rasterweite%,Rasterfarbe%
    GlobalRaster%=Rasterweite%
    var rx%=Rasterweite%
    var ry%=Rasterweite%+60

    WhileLoop 10' à cause de qui Geschwindigkeit seulement 10x et ensuite comme Bitmap dans den grenier

        Whileloop 10

            SetPixel rx%,ry%,Rasterfarbe%
            rx%=rx%+Rasterweite%

        Endwhile

        rx%=Rasterweite%
        ry%=ry%+Rasterweite%

    Endwhile

    MCLS Rasterweite%*10,Rasterweite%*10,BackGround%
    CopyBmpToMem Rasterweite%,Rasterweite%+60 - Rasterweite%*10,Rasterweite%*10 > 0,0
    rx%=Rasterweite%
    ry%=Rasterweite%+60

    WhileNot ry%>=%maxy

        WhileNot rx%>=%maxx

            MCopyBmp 0,0-Rasterweite%*10,Rasterweite%*10 > rx%,ry%;0
            rx%=rx%+Rasterweite%*10

        Endwhile

        rx%=Rasterweite%
        ry%=ry%+Rasterweite%*10

    Endwhile

ENDPROC

'###################### HAUPTFENSTER
Fenêtre Style 31
Titre de la fenêtre "Rasterfari"
Fenêtre %maxx+5,5 - 800,600
var dummy&=Contrôle("Dialogue",»,$54000000,0,0,0,0,%hwnd,0,%HINSTANCE)
var BackGround%=~GetSysColor(15)
Cls BackGround%
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 20,RGB(0,0,0)
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
MausMove

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,"|"))
            MausMove
            MausMove
            MausMove
            ~ImageList_BeginDrag(IcoList&,GI%,(%mousex-xOff&-MX%),(%mousey-yOff&-MY%))
            ~ImageList_DragEnter(%hwnd,%mousex,%mousey)
            DragDrop
            ~ImageList_EndDrag()
            UseCursor 0
            Einrasten' pas trop verwechseln avec Ausrasten

        endif

    Endwhile

Endwhile

Dispose b#
Dispose être#
Dispose bereich#
Dispose ClientRect#
deleteobject IcoList&

1.506 kB
Hochgeladen:18.11.2015
Downloadcounter98
Download
 
Website:  [...] 
Facebook:  [...] 
18.11.2015  
 




Jörg
Sellmeyer
eh bien - la plus part du temps hat on oui une certain Zielbereich et pas den ganzen Bildschirm. et selbst qui wäre chez einem 16-Pixel-Raster selbst dans 1900 Auflösung locker dans einem Array unterzubringen.
Letztendlich peux on es sûrement aussi berechnen ou bien qui Werte simple dans einer Listbox unterbringen.

je serait den Cursor plutôt dans qui linke obere coin mettons, ensuite hat on qui coin des Icônes zum viser.
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
19.11.2015  
 




H.Brill
oui, cela klappt im Raster maintenant déjà besser.
maintenant veux je seulement encore qui Symbole im Raster
Déplacer peut.
 
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.
19.11.2015  
 




ByteAttack
Jörg Sellmeyer (19.11.15)
eh bien - la plus part du temps hat on oui une certain Zielbereich et pas den ganzen Bildschirm. et selbst qui wäre chez einem 16-Pixel-Raster selbst dans 1900 Auflösung locker dans einem Array unterzubringen.
Letztendlich peux on es sûrement aussi berechnen ou bien qui Werte simple dans einer Listbox unterbringen.


peux on aussi dans einem certain Bereich berechnen...
je serait seulement un Array benutzen, wohin qui Icônes gelandet sommes.

Jörg Sellmeyer (19.11.15)
je serait den Cursor plutôt dans qui linke obere coin mettons, ensuite hat on qui coin des Icônes zum viser.


simple dans
KompilierenMarqueSéparation
Proc MausMove

    xneu&= Long(b#,0)+((GI%+1)*39)-35
    ~SetCursorPos(xneu&,Long(b#,4)+4)

qui Werte changement et sous
KompilierenMarqueSéparation
Proc Einrasten

    DrawIcon IcoList&,GI%,%MouseX,%MouseY
    ...
    DrawX%=((%MouseX)/GlobalRaster%)
    DrawY%=((%MouseY)/GlobalRaster%)

alle -16 entfernen

H.Brill (19.11.15)
oui, cela klappt im Raster maintenant déjà besser.
maintenant veux je seulement encore qui Symbole im Raster
Déplacer peut.


un bisschen dois aussi selber faire...
nie gemacht ganze oui seulement comme Beispiel erstellt! je hab den Code extra simple aufgeteilt et pas optimiert...
 
Website:  [...] 
Facebook:  [...] 
19.11.2015  
 




H.Brill
merci nochmals.
Hab maintenant encore quoi de Uwe 'Pascal' Niemeier
trouvé.
Werde mich la fois am Wochende durchwursteln.
 
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.
19.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.381 Views

Untitledvor 0 min.
Sven Bader31.03.2023
funkheld12.12.2022
Walter11.12.2022
H.Brill12.10.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