Wünsche et Anregungen | | | | - 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.
|
| | | | |
| | 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 |
| | | | |
| | 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 X3System: 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éparationUSERMESSAGES 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&
|
| | | | |
| | 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éparationUSERMESSAGES 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&
|
| | | | |
| | 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. |
| | | | |
| | 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 qui Werte changement et sous KompilierenMarqueSéparation 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... |
| | | | |
| | 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épondreOptions du sujet | 14.381 Views |
Themeninformationencet Thema hat 4 participant: |