Español
Wünsche y Sugerencias

Propuestas para künftige Versionen

Drag&Drop

 
- Página 1 -



H.Brill
Como uno sin Drag&Drop en el PC-Alltag fast no
mehr auskommt, debería dieses auch en XProfan (X3)
necesariamente integriert voluntad. Sowohl innerhalb des eigenen
Profanfenster + Controls (Listboxen usw.)como auch de Fremdprogrammen gedragte Archivos usw.

Zumindest 3 Formate wären me como wichtig :
Textos, Archivos y Bilder.

Tal vez kann Roland como sí qué einsteiger o. User-
freundliches remendar. Mit el entsprechenden API-
Características y el CallBack-Características de XProfan
dürfte algo como machbar ser.
 
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  
 



 
- Página 1 -



ByteAttack
Sí - Es una älterer Code de me. tener ihn ahora nada adaptado.
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
17.11.2015  
 




H.Brill
Jetzt muß Yo sólo todavía erreichen, daß uno unten
auch el Position korrigieren kann. Man trifft sí
no siempre igual en el Schwarze.

Also todavía una Drag&Drop innerhalb des Rasters.

Damit du verstehst, Yo mi :
Etwa el Effekt, como beim Windows Solitärspiel.
Wenn uno el Karte unten anhängt, rastet el
unten una, si uno una etwaige Postion
erreicht ha.
 
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
Dafür dürfte entonces Between(....) el richtige Kandidat ser. Wenn du el Koordinaten para dein Raster hast (en un Array oder Grid), kannst du entonces con Between überprüfen, en welchem Raster du landest.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
17.11.2015  
 



 
- Página 2 -



ByteAttack
Wobei lo esta una "Problemchen" son, como uno sólo el Mauskoordinaten zurück bekommt y no el de el ImageListe. Je después de wo uno ahora el Icon "anpackt" es unterschiedlich...
Hab como desafortunadamente (NOCH) no Solución
 
XProfan X3
Website:  [...] 
Facebook:  [...] 
17.11.2015  
 




Michael
W.
No en Punkten, pero en Kachelgröße denken...

Teile alles en Quadrate una y arbeite entonces con Intersect(). Damit podría una continuación auch Zielrähmchen conjunto.

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




H.Brill
Gracias,
zuerst muß Yo entonces veces el Verschieben (Move) innerhalb
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 Yo lo ahora así "gedeichselt", daß si al Icon "anfässt", el Cursor simplemente en el Mitte des Icons hüpft.
KompilierenMarcaSeparación
USERMESSAGES 16
 $H Windows.ph
 $H Commctrl.ph
 $H Messages.ph
'################ Globale Variables
var Bild&=create("HPIC", 0, "TOOLBAR32")
var IcoList& = create("ImageList",32,32,Bild&,rgb(192,192,192))
var AnzIcon%=73
var Zeilengrenze%=5
Declarar EndeY%,IstNeuX%,px%,py%,Temp$,MX%,MY%,GI%,bereich#,be#,erg&,erg2&,x&,y&,texto$,b#,xneu&,ClientRect#
Dim be#,8
Dim b#,16
Dim bereich#,1024
Dim ClientRect#,16

Proc UpdateWindow

    Case width(%hwnd,1)<800:SetWindowPos %hwnd=%WinLeft,%WinTop-800,height(%hwnd,1);0
    Case height(%hwnd,1)<600:SetWindowPos %hwnd=%WinLeft,%WinTop-width(%hwnd,1),600;0
    TB_AufBau

ENDPROC

'################################################################################################################# Toolbar aufbauen

Proc TB_AufBau

    Declarar WL%
    ClearList GB&
    USEP 0,1,~GetSysColor(15)
    UseBrush 1,~GetSysColor(15)
    Rectángulo 0,0-%maxX,42
    USEP 0,1,~GetSysColor(22)
    Line 0,42-%maxX,42
    var AnzProZeile%=width(%hwnd)/39

    if AnzIcon%<AnzProZeile%

        WL%=AnzIcon%

    más

        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

    Mientras que %mousepressed'--Botón del ratón se mantenido

        ~ImageList_DragMove(%mousex,%mousey)

    EndWhile

ENDPROC

Proc MausMove' Setzt el Mauszeiger siempre en el Mitte des Icons

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

ENDPROC

Proc DrawRaster

    Parámetros Rasterweite%,Rasterfarbe%
    var rx%=Rasterweite%
    var ry%=Rasterweite%+60

    WhileLoop 10' Wegen el Geschwindigkeit sólo 10x y luego como Mapa de bits en el Speicher

        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

    Sinestar encargado ry%>=%maxy

        Sinestar encargado 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
Ventana de Estilo 31
Título de la ventana "Rastafari"
Ventana %maxX+5,5 - 800,600
var dummy&=Control("DIÁLOGO","",$54000000,0,0,0,0,%hwnd,0,%hInstance)
var BackGround%=~GetSysColor(15)
Cls BackGround%
UseFont "Verdana",16,0,0,0,0
var font&=Crear("Font","Verdana",16,0,0,0,0)
SetDialogFont 1
var GB&=Crear("Grid",3,0)
var GBNeu&=Crear("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&'--Höhe el Titelleiste + Fensterrand
' ################ HAUPTSCHLEIFE
MausMove

Sinestar encargado %Umessage=16

    WaitInput

    If %Key=4

        UpdateWindow

    EndIf

    WhileLoop 0, GetCount(GB&)-1

        Temp$=GetString$(GB&,&bucle)
        MX%=val(Substr$(Temp$,1,"|"))
        MY%=val(Substr$(Temp$,2,"|"))

        if Ratón(MX%,MY%-MX%+32,MY%+32)

            GI%=val(Substr$(Temp$,3,"|"))
            MausMove' muss desafortunadamente así oft :-(
            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

Disponer b#
Disponer be#
Disponer bereich#
Disponer ClientRect#
deleteobject IcoList&

1.506 kB
Bezeichnung:Beispiel exe
Hochgeladen:18.11.2015
Ladeanzahl102
Descargar
4 kB
Bezeichnung:Beispielcode
Hochgeladen:18.11.2015
Ladeanzahl120
Descargar
 
Website:  [...] 
Facebook:  [...] 
18.11.2015  
 




ByteAttack
Jörg Sellmeyer (17.11.15)
Dafür dürfte entonces Between(....) el richtige Kandidat ser. Wenn du el Koordinaten para dein Raster hast (en un Array oder Grid), kannst du entonces con Between überprüfen, en welchem Raster du landest.


Das wäre ya una Mega-Array.... En una Raster podría al auch simplemente berechnen...
KompilierenMarcaSeparación
USERMESSAGES 16
 $H Windows.ph
 $H Commctrl.ph
 $H Messages.ph
'################ Globale Variables
var Bild&=create("HPIC", 0, "TOOLBAR32")
var IcoList& = create("ImageList",32,32,Bild&,rgb(192,192,192))
var AnzIcon%=73
var Zeilengrenze%=5
Declarar EndeY%,IstNeuX%,px%,py%,Temp$,MX%,MY%,GI%,bereich#,be#,erg&,erg2&,x&,y&,texto$,b#,xneu&,ClientRect#,GlobalRaster%
Dim be#,8
Dim b#,16
Dim bereich#,1024
Dim ClientRect#,16
var Ausrichten%=1' 0=Nicht al Raster ausrichten | 1=Am Raster ausrichten

Proc UpdateWindow

    Case width(%hwnd,1)<800:SetWindowPos %hwnd=%WinLeft,%WinTop-800,height(%hwnd,1);0
    Case height(%hwnd,1)<600:SetWindowPos %hwnd=%WinLeft,%WinTop-width(%hwnd,1),600;0
    TB_AufBau

ENDPROC

'################################################################################################################# Toolbar aufbauen

Proc TB_AufBau

    Declarar WL%
    ClearList GB&
    USEP 0,1,~GetSysColor(15)
    UseBrush 1,~GetSysColor(15)
    Rectángulo 0,0-%maxX,42
    USEP 0,1,~GetSysColor(22)
    Line 0,42-%maxX,42
    var AnzProZeile%=width(%hwnd)/39

    if AnzIcon%<AnzProZeile%

        WL%=AnzIcon%

    más

        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

    Declarar DrawX%,DrawY%

    if Ausrichten%=0

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

    más

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

    endif

ENDPROC

Proc DragDrop

    Mientras que %mousepressed'--Botón del ratón se mantenido

        ~ImageList_DragMove(%mousex,%mousey)

    EndWhile

ENDPROC

Proc MausMove' Setzt el Mauszeiger siempre en el Mitte des Icons

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

ENDPROC

Proc DrawRaster

    Parámetros Rasterweite%,Rasterfarbe%
    GlobalRaster%=Rasterweite%
    var rx%=Rasterweite%
    var ry%=Rasterweite%+60

    WhileLoop 10' Wegen el Geschwindigkeit sólo 10x y luego como Mapa de bits en el Speicher

        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

    Sinestar encargado ry%>=%maxy

        Sinestar encargado 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
Ventana de Estilo 31
Título de la ventana "Rasterfari"
Ventana %maxX+5,5 - 800,600
var dummy&=Control("DIÁLOGO","",$54000000,0,0,0,0,%hwnd,0,%hInstance)
var BackGround%=~GetSysColor(15)
Cls BackGround%
UseFont "Verdana",16,0,0,0,0
var font&=Crear("Font","Verdana",16,0,0,0,0)
SetDialogFont 1
var GB&=Crear("Grid",3,0)
var GBNeu&=Crear("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&'--Höhe el Titelleiste + Fensterrand
' ################ HAUPTSCHLEIFE
MausMove

Sinestar encargado %Umessage=16

    WaitInput

    If %Key=4

        UpdateWindow

    EndIf

    WhileLoop 0, GetCount(GB&)-1

        Temp$=GetString$(GB&,&bucle)
        MX%=val(Substr$(Temp$,1,"|"))
        MY%=val(Substr$(Temp$,2,"|"))

        if Ratón(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' No a verwechseln con Ausrasten

        endif

    EndWhile

EndWhile

Disponer b#
Disponer be#
Disponer bereich#
Disponer ClientRect#
deleteobject IcoList&

1.506 kB
Hochgeladen:18.11.2015
Ladeanzahl98
Descargar
 
Website:  [...] 
Facebook:  [...] 
18.11.2015  
 




Jörg
Sellmeyer
Na sí - meistens ha uno sí una cierto Zielbereich y no el ganzen Bildschirm. Und incluso el wäre en una 16-Pixel-Raster incluso en 1900 Auflösung locker en un Array unterzubringen.
Letztendlich puede ser lo sicher auch berechnen o Werte simplemente en uno Listbox unterbringen.

Yo proporcionaría Cursor más en el linke obere Ecke conjunto, entonces ha uno el Ecke des Icons para Zielen.
 
XProfan X3
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
19.11.2015  
 




H.Brill
Sí, el klappt en el Raster ahora ya mejor.
Jetzt voluntad Yo sólo todavía el Symbole en el Raster
mover puede.
 
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)
Na sí - meistens ha uno sí una cierto Zielbereich y no el ganzen Bildschirm. Und incluso el wäre en una 16-Pixel-Raster incluso en 1900 Auflösung locker en un Array unterzubringen.
Letztendlich puede ser lo sicher auch berechnen o Werte simplemente en uno Listbox unterbringen.


Kann uno auch en un determinado Zona berechnen...
Yo sería sólo una Array benutzen, wo el Icons gelandet son.

Jörg Sellmeyer (19.11.15)
Yo proporcionaría Cursor más en el linke obere Ecke conjunto, entonces ha uno el Ecke des Icons para Zielen.


Einfach en
KompilierenMarcaSeparación
Proc MausMove

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

el Werte ändern y bajo
KompilierenMarcaSeparación
Proc Einrasten

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

todos -16 entfernen

H.Brill (19.11.15)
Sí, el klappt en el Raster ahora ya mejor.
Jetzt voluntad Yo sólo todavía el Symbole en el Raster
mover puede.


Ein bisschen mußt auch selber hacer...
Yo todos sí sólo como Ejemplo erstellt! Yo el código extra simplemente aufgeteilt y no optimiert...
 
Website:  [...] 
Facebook:  [...] 
19.11.2015  
 




H.Brill
Gracias nochmals.
Hab ahora todavía de lo que Uwe 'Pascal' Niemeier
gefunden.
Werde mich veces al 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  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

14.380 Views

Untitledvor 0 min.
Sven Bader31.03.2023
funkheld12.12.2022
Walter11.12.2022
H.Brill12.10.2022
Más...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie