Español
Wünsche y Sugerencias

Wunsch: hPic-Display vs. Mapa de bits

 
Bitmaps flickern desafortunadamente (XP,Vista,7) si uno esta así una neues hPic zuweisen möchte:
KompilierenMarcaSeparación
CLS
var HPIC&=CREATE("hNewPic",100,100,$FF0000)
var HBMP&=CREATE("bitmap",%HWND,HPIC&,10,10)

WHILE 1

    WAITINPUT 10
    SENDMESSAGE(HBMP&,370,0,HPIC&)//stm_setImage

END
/a>

Vlt. podría uno una Control hPicDisplay erfinden welches incluso una zugewiesenes (vlt. gwl_userData) hPic características z.B. en wm_draw.

Dann podría uno en así una Control auch dibujar.

 
25.04.2010  
 



Es me nun endlich gelungen el auch veces a kompilieren: [...] 

Was uno sieht es una "flickerndes" Mapa de bits.

311 kB
Hochgeladen:21.09.2010
Ladeanzahl69
Descargar
 
21.09.2010  
 




Andreas
Miethe


Kann el auch al Rechner mentira ? En me flackert nichts.
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
21.09.2010  
 



Salve!

Jain, el Flackern geschieht en allen Computern halbwegs igual o. je después de Computer- Geschwindigkeit y Mapa de bits-Größe.

En Bitmaps o. BitmapStatics en Verbindung con stm_setImage flackern esta sólo "mehr oder weniger" si uno stm_setImage anwendet - Yo podría me aber vorstellen en el "neusten" UI's como AREO o.ä. el Flackern "weggecached" se aber el weiß Yo no.

Mi "Idee" es una einfaches Owner-Draw-Static welches sólo z.B. en wm_paint una HPic características - dieses sería entonces sí de Haus de no flickern si uno una Bildänderung anweist.

Tal vez könntest Usted me de tiempo solch Owner-Draw-Static vormachen - also uno el en el FastMode con eigener WProc una beliebiges hPic características - Yo schätze Yo podría lo entonces wiederum una "Control" herstellen y umbauen para el "nicht-Fastmode" por WProc como nProc y Roland podría dies entonces wiederum bastante direkt en Delphi umsetzen y direkt para XProfan una Crear("canvas",...) herstellen.
 
21.09.2010  
 




Jörg
Sellmeyer
En me flackerts auch. Windows XP
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
22.09.2010  
 




Andreas
Miethe


¿Te ha algo en dieser Art ?

Yo habe el eben veces de el Ärmel geschüttelt, por lo tanto son todavía feste Werte drin.
Tiempo sehen, si Yo al Wochenende dazu komme el auszubauen.
KompilierenMarcaSeparación
 $H Windows.ph
 $H Structs.ph
 $H Messages.ph
DEF &CAPTUREBLT $40000000
Struct WNDCLASSEX = ~WNDCLASSEX
Struct PS         = ~PAINTSTRUCT
Declare Ende&,CanvasClassname$
WindowTitle "Canvas"
CLS ~GetSysColor(~Color_BTNFACE)
'Klassen Info holen
Var wndc# = New(WNDCLASSEX)
wndc#.cbSize& = SizeOf(wndc#)
~GetClassInfoEx(%hInstance,"STATIC",wndc#)
'alte controlprocadresse speichern
Var OldWndProc& = wndc#.lpfnWndProc&
' neue controlprocadresse setzen
wndc#.lpfnWndProc& = Procaddr("CanvasProc",4)
'neuen Klassennamen setzen
CanvasClassname$ = "PrfCanvas"
wndc#.lpszClassName& = Addr(CanvasClassname$)
wndc#.hInstance& = %hInstance
' Neue Klasse registrieren
~RegisterClassEx(wndc#)
Set("Fastmode",1)
Var Canvas& = ~CreateWindowEx(0,"PrfCanvas","", ~WS_CHILD | ~WS_VISIBLE | ~SS_SUNKEN,10,10,300,300,%hwnd,0,%hInstance,0)

Whilenot Ende&

    Waitinput

Endwhile

End

Proc CanvasProc

    Parameters wnd&,msg&,wparam&,lparam&

    Select msg&

        Caseof ~WM_PAINT

        Var PS# = New(PS)
        Var DC& = ~BeginPaint(wnd&,PS#)
        ~BitBlt(DC&,0,0,298,298,~GetDC(%Desktop),0,0,~SRCCOPY | &CAPTUREBLT)
        ~EndPaint(wnd&,PS#)
        Dispose PS#
        Return 0

    Endselect

    Return ~CallWindowProc(OldWndProc&,wnd&,msg&,wparam&,lparam&)

ENDPROC

 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
22.09.2010  
 




Andreas
Miethe


Ok, es ya expandido.

Ob lo en Euch flackert kann Yo no sagen, en me flackert nichts.
KompilierenMarcaSeparación
 $H Windows.ph
 $H Structs.ph
 $H Messages.ph
DEF &CAPTUREBLT $40000000
Struct WNDCLASSEX = ~WNDCLASSEX
Struct PS         = ~PAINTSTRUCT
Struct BITMAP     = ~BITMAP
Declare Ende&,CanvasClassname$
WindowTitle "Canvas"
CLS ~GetSysColor(~Color_BTNFACE)
'Klassen Info holen
Var wndc# = New(WNDCLASSEX)
wndc#.cbSize& = SizeOf(wndc#)
~GetClassInfoEx(%hInstance,"STATIC",wndc#)
'alte controlprocadresse speichern
Var OldWndProc& = wndc#.lpfnWndProc&
' neue controlprocadresse setzen
wndc#.lpfnWndProc& = Procaddr("CanvasProc",4)
'neuen Klassennamen setzen
CanvasClassname$ = "PrfCanvas"
wndc#.lpszClassName& = Addr(CanvasClassname$)
wndc#.hInstance& = %hInstance
' Neue Klasse registrieren
~RegisterClassEx(wndc#)
Set("Fastmode",1)
Var Canvas& = ~CreateWindowEx(0,"PrfCanvas","", ~WS_CHILD | ~WS_VISIBLE | ~SS_SUNKEN | ~SS_BITMAP,10,10,0,0,%hwnd,0,%hInstance,0)
var HPIC&=CREATE("hNewPic",100,100,$FF0000)
SendMessage(Canvas&,~STM_SETIMAGE,0,HPIC&)

Whilenot Ende&

    WAITINPUT 10
    Startpaint HPIC&
    TextColor $00FFFF,$FF0000
    Drawtext 10,10,Time$(0)+":"+Left$(Time$(1),2)
    EndPaint
    SENDMESSAGE(Canvas&,370,0,HPIC&)'stm_setImage

Endwhile

End

Proc CanvasProc

    Parameters wnd&,msg&,wparam&,lparam&

    Select msg&

        Caseof ~WM_PAINT

        Var PS# = New(PS)
        Var DC& = ~BeginPaint(wnd&,PS#)
        Var CompDC& = ~CreateCompatibleDC(DC&)
        Var Bmp& = ~SendMessage(wnd&,~STM_GETIMAGE,0,0)
        Var BMP# = New(BITMAP)
        ~GetObject(Bmp&,SizeOf(BMP#),BMP#)
        Var Width& = BMP#.bmwidth&
        var Height& = BMP#.bmHeight&
        ~SelectObject(CompDC&,Bmp&)
        ~ReleaseDC(CompDC&)
        ~BitBlt(DC&,0,0,Width&,Height&,CompDC&,0,0,~SRCCOPY | &CAPTUREBLT)
        ~EndPaint(wnd&,PS#)
        ~DeleteDC(CompDC&)
        Dispose PS#
        Dispose BMP#
        Return 0

        Caseof ~STM_SETIMAGE

        ~InvalidateRect(wnd&,0,0)

    Endselect

    Return ~CallWindowProc(OldWndProc&,wnd&,msg&,wparam&,lparam&)

ss=s4 href='./../../function-references/XProfan/ENDPROC/'>ENDPROC
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
22.09.2010  
 



Klasse y vielen Dank, para mein Vorhaben incluso ya a viel - así kann Yo super herstellen Yo meinte!

[offtopic]
Nebenbei bemerkt: El Línea Struct WNDCLASSEX = ~WNDCLASSEX lässt XPSE abstürzen porque WNDCLASSEX ya bekannt _und gleichnamig el Zuweisung - en nächster Versión Fijo. Abhilfe: Línea simplemente entfernen como Struktur automáticamente eingebunden se si benötigt.
[/offtopic]
 
22.09.2010  
 



Hab el veces como Incluir canvas.inc ( [...]  ) verpackt -

en dieser Form hilft lo me persönlich al meisten.
 
22.09.2010  
 



@Roland: Diese Canvassses [...]  son simplemente "super" - todavía superer wäre lo si XProfan esta de Haus de erzeugen kann y si yo me el Inc anschaue son lo auch sólo wenige Zeilen que sí bastante 1:1 después de Delphi portieren liessen a una eingebauten create("canvas".
 
22.09.2010  
 




Andreas
Miethe


¡Hola David,

si el todavía para Win98 y ME kompatibel hacer willst entonces nimm en Bitblt() el 2.Parámetro ()$40000000 en el Flags fuera. . Den Tuve sólo para el erste Ejemplo, para el Kopieren des Desktops instalado. Damit voluntad auch "Layered Windows" con eingefangen. Für normale Bitmaps Usted necesita el sí no, y bajo Win98 o. ME funktioniert el Sache no con el Flag !

Hast Usted ya veces probiert el código con Xprofan12 laufen que se ? En me folgt una Choque.
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
22.09.2010  
 



Das Flag Aprovecho fuera, tambor el Incluir como V0.0 auch un hilo verpasst fürs Weiterdranentwickeln oder "Blödsinn" como en "$40000000" Herausnehmen. ^ ^

>> Hast Usted ya veces probiert el código con Xprofan12 laufen que se ?

Posesiones Yo no getestet porque aktueller xpse para neuste XProfan 11 Versión es - Yo, el para XProfan 12 sólo fertigstellen muss. Ein pocos Gründe fallen me ya una por qué una XProfan 11 "enh" bajo XProfan 12 momentan abstürzen podría. ^ ^
 
22.09.2010  
 




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

7.319 Views

Untitledvor 0 min.
Rainer Hoefs02.07.2015
Ernst07.05.2014
Julian Schmidt16.07.2013
Axel Berse20.02.2013
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