| |
|
|
- page 1 - |
|
| Bitmaps flickern malheureusement (XP,Vue,7) si on cette so un nouveau hPic zuweisen voudrais: KompilierenMarqueSéparationCLS
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. pourrait on un Contrôle hPicDisplay erfinden welches selbst un zugewiesenes (vlt. gwl_userData) hPic zeichnet z.B. chez wm_draw.
ensuite pourrait on sur so einem Contrôle aussi zeichnen.
Nachtrag: Siehe Canvas.Inc: [...] |
|
|
| |
|
|
|
| |
|
- page 1 - |
|
| Salve!
Jain, cela Flackern geschieht sur allen Computern halbwegs juste bzw. je pour ordinateur- Geschwindigkeit et Bitmap-Taille.
chez Bitmaps bzw. BitmapStatics dans liaison avec stm_setImage flackern cet arrêt "mehr ou bien weniger" si on stm_setImage anwendet - je pourrait mir mais présenter cela chez "neusten" UI's comment AREO o.ä. cela Flackern "weggecached" wird mais cela sais je pas.
mon "Idee" est un simple Owner-Draw-Static welches arrêt z.B. chez wm_paint un HPic zeichnet - cet serait ensuite oui de maison aus pas flickern si on une Bildänderung anweist.
peut-être könntest Du mir la fois solch Owner-Draw-Static vormachen - alors eines cela im FastMode avec eigener WProc un beliebiges hPic zeichnet - je schätze je pourrait daraus ensuite wiederum un "Control" herstellen et umbauen pour den "nicht-Fastmode" per WProc comme nProc et Roland pourrait ca ensuite wiederum assez direct dans Delphi umsetzen et direct pour XProfan un Créer("canvas",...) herstellen. |
|
|
| |
|
|
|
Jörg Sellmeyer | chez mir flackerts aussi. Windows XP |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.09.2010 ▲ |
|
|
|
|
Andreas Miethe
| Avez- Du quelque chose dans cette Art ?
j'ai cela plan la fois aus dem Ärmel geschüttelt, daher sommes encore feste Werte drin. la fois voyons, si je am Wochenende en supplément viens cela auszubauen. KompilierenMarqueSéparation $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, ist déjà étendu.
si es chez Euch flackert peux je pas dire, chez mir flackert rien. KompilierenMarqueSéparation $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 ▲ |
|
|
|
|
| super et vielen Dank, pour mon projet sogar déjà trop viel - avec cela peux je super herstellen quoi je meinte!
[offtopic] Nebenbei bemerkt: qui la ligne Struct WNDCLASSEX = ~WNDCLASSEX peut XPSE abstürzen weil WNDCLASSEX bereits bekannt _und gleichnamig qui Zuweisung - dans prochaine Version behoben. Abhilfe: la ligne simple entfernen là Struktur automatisch eingebunden wird si nécessaire. [/offtopic] |
|
|
| |
|
|
|
| Hab cela la fois comme Include canvas.inc ( [...] ) verpackt -
dans cette forme hilft es mir personnelle am meisten. |
|
|
| |
|
|
|
| @Roland: cet Canvassses [...] sommes simple "super" - encore superer wäre es si XProfan cet de maison aus erzeugen peux et si je mir qui Inc anschaue sommes es aussi seulement wenige Zeilen qui sich oui assez 1:1 pour Delphi portieren liessen trop einem eingebauten create("canvas". |
|
|
| |
|
|
|
Andreas Miethe
| allô David,
si Du le reste pour Win98 et ME kompatibel faire veux ensuite prends chez Bitblt() den 2.paramètre ()$40000000 chez den Flags raus. . Den J'ai eu seulement pour cela erste Beispiel, pour cela Kopieren des Desktops incorporé. avec cela volonté aussi "Layered Windows" avec eingefangen. Pour normale Bitmaps brauchst Du cela oui pas, et sous Win98 bzw. ME funktioniert qui l'affaire pas avec dem Flag !
la hâte Du déjà la fois probiert den Code avec Xprofan12 courir trop laisser ? chez mir folgt un Absturz. |
|
|
| 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 ▲ |
|
|
|
|
| cela Flag nehme je raus, tambour qui Include comme V0.0 aussi une Fil verpasst pour Weiterdranentwickeln ou bien "Blödsinn" comment chez "$40000000" Herausnehmen. ^ ^
>> la hâte Du déjà la fois probiert den Code avec Xprofan12 courir trop laisser ?
Habe je pas getestet weil aktueller xpse pour neuste XProfan 11 Version ist - Je l' pour XProfan 12 seulement fertigstellen muss. un paire Gründe tomber mir déjà un weshalb une XProfan 11 "enh" sous XProfan 12 momentan abstürzen pourrait. ^ ^ |
|
|
| |
|
|
| |
|
- page 2 - |
|
|
Andreas Miethe
| faute trouvé ReleaseDC() im Callback était qui Übeltäter, simple rausnehmen ! |
|
|
| 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 ▲ |
|
|
|
|
| |
|
| |
|
|
|
Jörg Sellmeyer | |
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... | 22.09.2010 ▲ |
|
|
|