| |
|
|
- page 1 - |
|
funkheld | cet bild& dans qui Tandis que-Schleife; bild&=create("hpiccopy",screen&,200,200,50,50) wird oui toujours wieder récente erzeugt. Wird là toujours wieder neuer grenier usé, ou bien wird cela Bild toujours dans den gleichen Speicherbereich gelegt, so cela cela vorgehende pas rausgenommen volonté braucht?
merci.
Gruss
{$cleq}
{$compiler d:\XProfan11\}
{$runtime d:\XProfan11\}
declare screen&,bild&,ende&
ende&=1
Fenêtre 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
Fin
|
|
|
| |
|
|
|
| |
|
- page 1 - |
|
funkheld | Jup, merci. j'ai unten un Bereich installé avec : mcls 50,50 y habe je un partie des Screen kopiert : copybmptomem 200,200-50,50>0,0
comment bekomme je cela BIld maintenant à une bestimmte lieu vom Screen&? comment viens je à qui Adresse des mcls-Mémoire à données trop manipuler ?
merci.
Gruss
{$cleq}
{$compiler d:\XProfan11\}
{$runtime d:\XProfan11\}
declare screen&,bild&,ende&
ende&=1
Fenêtre 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
Tandis que ende&
drawpic screen&,20,20;0
copybmptomem 200,200-50,50>0,0
.........
Endwhile
waitkey
Fin
|
|
|
| |
|
|
|
Jörg Sellmeyer | tu peux aussi avec Début de peinture -1 direct sur qui Memorybitmep zeichnen ou bien Du erzeugst avec @Créer(«PCSI»,N,S) et dem paramètre "& MEMBMP" une Kopie Profanhilfe trop Créer (hPic,...)
... qui aktuellen avec MCLS ou bien MLOADBMP erzeugten Speicherbitmap.... |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 13.04.2012 ▲ |
|
|
|
|
| Gibt oui aussi MCopyBmp X1,Y1 - X2,Y2 > X3,Y3; N1[, N2] quoi on pour Début de peinture sur Screen anwenden peux. |
|
|
| |
|
|
|
|
y habe je un partie des Screen kopiert
et si qui Screen (teils, z.B. de Windows) verdeckt wird? |
|
|
| |
|
|
|
funkheld | MCopyBmp allez seulement chez MLoadBmp Bildern:
qui Bildschirmausschnitt qui beginnend chez X1,Y1 une Breite de X2 Pixel et une Hauteur de Y2 Pixel hat, wird aus dem avec MLoadBmp geladenem Bild à qui Position X3,Y3 kopiert.
Trifft chez mir mais pas trop, je voudrais une Kopie sans toujours cet "Create"...
merci.
Gruss |
|
|
| |
|
|
|
| @Funkheld: quoi oui c'est ca la hâte Du car avant?
je peux mir nämlich présenter cela es une einfachere/ schnellere Herangehensweise gibt.
si Du quelque chose comme comment "Sprites" realisieren vouloir ensuite empfehle je cela Bild im grenier zusammenzusetzen et einmal pro Frame sur cela Zielausgabefenster trop kopieren.
Pratiquement vom le bout her:
|
|
|
| |
|
|
|
funkheld |
quoi la hâte Du vers DeleteObject?
si je quelque chose laufend Sauver voudrais zum Auswerten, pourquoi muss on là toujours une neuen Speicherbereich créer et wieder freigeben.
Gibt es rien cela on seulement avec dem einem Reservierten Speicherbereich pour une certain Zweck arbeitet avec qui Grafik?
merci.
Si: kanndst du so quelque chose la fois wieder comme Nativen Code pour XPSE entwickeln ?
merci.
Gruss |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
| funkheld (13.04.12)
Si: kanndst du so quelque chose la fois wieder comme Nativen Code pour XPSE entwickeln ?
je crois le moi cela déjà gemacht et imho aussi déjà posté habe.
si Du quelque chose effectuer peux quoi oui c'est ca Du avant la hâte, ensuite pourrait je la fois drüber grübeln comment cela meiner attitude pour am effizientesten trop bewerkstelligen wäre.
quoi je aussi déjà "gezeigt" habe ist cela on quelque chose comme dans eigenen/ neuen Threads ablaufen laisser peux quoi mais seulement dans manchen Situationen pratique ist. |
|
|
| |
|
|
|
funkheld | bpic1& = create("hNewPic", 128,128,rgb(0,0,0)) un Bild vom Screen avec bitblt fertig dans qui bpix1& zum weiterverarbeiten avec 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)
}
merci.
Gruss |
|
|
| |
|
|
|
| BitBlt kopiert cela Bild, cela klappt doch aussi anders herum. Musst pratique seulement source et but retourner. |
|
|
| |
|
|
|
| funkheld (13.04.12)
bpic1& = create("hNewPic", 128,128,rgb(0,0,0)) un Bild vom Screen ...
et quoi oui c'est ca ist chez Dir "Screen"? un la fenêtre ou bien un hPic? |
|
|
| |
|
|
|
funkheld | j'ai qui Routine la fois nProc drawhcopy genannt. maintenant funktioniert es.
dx et dy sommes qui Werte aus diesem Versatz qui bpic&: 30,10
{$cleq}
{$compiler d:\XProfan11\}
{$runtime d:\XProfan11\}
declare bpic&,bpic1&,bpic2&,ende&
ende&=1
bpic& = create(«PCSI»,-1,"data\\voiture.bmp")
Fenêtre 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))
Tandis 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
Fin
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
merci.
Gruss |
|
|
| |
|
|