| |
|
|
- Página 1 - |
|
funkheld | Dieses bild& en el Mientras que-Schleife; bild&=create("hpiccopy",screen&,200,200,50,50) se sí siempre otra vez neu producido. Wird como siempre otra vez neuer Speicher verbraucht, oder se el Bild siempre en el gleichen Speicherbereich gelegt, así el el vorgehende no rausgenommen voluntad braucht?
Gracias.
Gruss
{$cleq}
{$compiler d:\XProfan11\}
{$runtime d:\XProfan11\}
declarar screen&,bild&,ende&
ende&=1
Ventana 20,20-500,500
Cls RGB(220,220,220)
screen& = create("hNewPic", 400,400,rgb(255,255,0))
startpaint screen&
usebrush 1,rgb(0,128,255)
ellipse 200,200-250,250
endpaint
Whileloop 10000
drawpic screen&,20,20;0
bild&=create("hpiccopy",screen&,200,200,50,50)
startpaint screen&
drawpic bild&,100,10;0
endpaint
EndWhile
End
|
|
|
| |
|
|
|
| |
|
- Página 1 - |
|
funkheld | Jup, danke. Yo habe unten una Zona eingerichtet con : mcls 50,50 Darin Yo una Teil des Screen kopiert : copybmptomem 200,200-50,50>0,0
Como bekomme Yo el BIld ahora a una cierto lugar vom Screen&? Como komme Yo a el Adresse des mcls-Speichers a Daten a manipulieren ?
Gracias.
Gruss
{$cleq}
{$compiler d:\XProfan11\}
{$runtime d:\XProfan11\}
declarar screen&,bild&,ende&
ende&=1
Ventana 20,20-500,500
Cls RGB(220,220,220)
screen& = create("hNewPic", 400,400,rgb(255,255,0))
bild&=create("hnewpic",60,60,rgb(0,0,0))
mcls 50,50
startpaint screen&
usebrush 1,rgb(0,128,255)
ellipse 200,200-250,250
endpaint
Mientras que ende&
drawpic screen&,20,20;0
copybmptomem 200,200-50,50>0,0
.........
EndWhile
waitkey
End
|
|
|
| |
|
|
|
Jörg Sellmeyer | Usted puede auch con StartPaint -1 direkt en el Memorybitmep dibujar oder Usted erzeugst con @Crear("HPIC",N,S) y el Parámetro "& MEMBMP" una Kopie Profanhilfe a Crear (hPic,...)
... el aktuellen con MCLS oder MLOADBMP erzeugten Speicherbitmap.... |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 13.04.2012 ▲ |
|
|
|
|
| Gibt en efecto MCopyBmp X1,Y1 - X2,Y2 > X3,Y3; N1[, N2] qué después de StartPaint en Screen anwenden kann. |
|
|
| |
|
|
|
|
Darin Yo una Teil des Screen kopiert
Und si la Screen (teils, z.B. de Fenstern) verdeckt se? |
|
|
| |
|
|
|
funkheld | MCopyBmp va sólo en MLoadBmp Bildern:
Der Bildschirmausschnitt el beginnend en X1,Y1 una Breite de X2 Pixel y una Höhe de Y2 Pixel ha, se de el con MLoadBmp geladenem Bild a el Position X3,Y3 kopiert.
Trifft en me pero no a, Yo möchte una Kopie sin siempre dieses "Create"...
Gracias.
Gruss |
|
|
| |
|
|
|
| @Funkheld: Was genau hast Usted porque antes?
Puedo me nämlich vorstellen el lo una einfachere/ schnellere Herangehensweise son.
Si usted algo como como "Sprites" realisieren möchtest entonces empfehle Yo el Bild en el Speicher zusammenzusetzen y una vez pro Frame el Zielausgabefenster a kopieren.
Quasi vom Ablauf her:
|
|
|
| |
|
|
|
funkheld |
Was hast Usted gegen DeleteObject?
Wenn Yo algo laufend speichern möchte para Auswerten, por qué muss uno como siempre una neuen Speicherbereich schaffen y otra vez liberación.
Gibt lo nichts el uno sólo el una Reservierten Speicherbereich para una cierto Zweck arbeitet con el Grafik?
Gracias.
If: kanndst du así algo veces otra vez como Nativen Code para XPSE entwickeln ?
Gracias.
Gruss |
|
|
| |
|
|
| |
|
- Página 2 - |
|
|
| funkheld (13.04.12)
If: kanndst du así algo veces otra vez como Nativen Code para XPSE entwickeln ?
Yo glaube el Yo el ya gemacht y imho auch ya Nuevo habe.
Si usted algo ausführen kannst ¿qué es exactamente Usted antes hast, entonces podría Yo veces drüber grübeln como el meiner Meinung después de al effizientesten a bewerkstelligen wäre.
Was Yo auch ya "gezeigt" habe es el uno algo como en eigenen/ neuen Hilos ablaufen dejar kann qué aber sólo en manchen Situationen praktisch es. |
|
|
| |
|
|
|
funkheld | bpic1& = create("hNewPic", 128,128,rgb(0,0,0)) Ein Bild vom Screen con bitblt fertig en el bpix1& para weiterverarbeiten con drawpic usw.
So ähnlich anders herum :
nProc drawhPic(long hPic,dc,x,y,xx,yy,dwROP){
long hDCBits=createCompatibleDC(hDC)
selectObject(hDCBits, hPic)
bitBlt(dc,x,y,xx,yy,hDCBits,0,0,dwROP)
deleteDC(hDCBits)
}
Gracias.
Gruss |
|
|
| |
|
|
|
| BitBlt kopiert el Bild, el klappt doch auch anders herum. Musst praktisch sólo Quelle y Ziel umkehren. |
|
|
| |
|
|
|
| funkheld (13.04.12)
bpic1& = create("hNewPic", 128,128,rgb(0,0,0)) Ein Bild vom Screen ...
Und ¿qué es exactamente es con usted "Screen"? Ein Ventana oder una hPic? |
|
|
| |
|
|
|
funkheld | Yo habe el Rutina veces nProc drawhcopy genannt. Jetzt funktioniert lo.
dx y dy son el Werte de diesem Versatz el bpic&: 30,10
{$cleq}
{$compiler d:\XProfan11\}
{$runtime d:\XProfan11\}
declarar bpic&,bpic1&,bpic2&,ende&
ende&=1
bpic& = create("HPIC",-1,"data\\auto.bmp")
Ventana 20,20-600,400
Cls RGB(220,220,220)
bpic1& = create("hNewPic", 400,200,rgb(255,255,0))
bpic2& = create("hNewPic", 128,128,rgb(0,0,0))
Mientras que Ende&
startpaint bpic1&
drawpic bpic&,30,10;0
drawhcopy(bpic2&,hdc,0,0,128,128,30,10,~SRCCOPY)
endpaint
drawpic bpic1&,10,10;0
waitkey
startpaint bpic1&
drawpic bpic2&,190,50;0
endpaint
drawpic bpic1&,10,10;0
EndWhile
End
nProc drawhPic(long hPic,dc,x,y,xx,yy,dwROP)
long hDCBits=createCompatibleDC(hDC)
selectObject(hDCBits, hPic)
bitBlt(dc,x,y,xx,yy,hDCBits,0,0,dwROP)
deleteDC(hDCBits)
ENDPROC
nProc drawhCopy(long hPic,dc,x,y,xx,yy,dx,dy,dwROP)
long hDCBits=createCompatibleDC(hDC)
selectObject(hDCBits, hPic)
bitBlt(hDCBits,x,y,xx,yy,dc,dx,dy,dwROP)
deleteDC(hDCBits)
ENDPROC
Gracias.
Gruss |
|
|
| |
|
|