animiert gif für purebasic-fenster - der einfachste weg ...

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

animiert gif für purebasic-fenster - der einfachste weg ...

Beitrag von bingo »

Bild :allright:

ganz einfach ... (wenn man weiss wie's geht)

grundlage... (so 'ne art mini-webgadget)

Code: Alles auswählen

Procedure.l Ansi2Uni(ansi.s) ;short way to unicode
SHStrDup_(@ansi,@memtarget)
ProcedureReturn memtarget
EndProcedure

OpenLibrary(0, "ATL.dll")
CallFunction(0,"AtlAxWinInit") 
OpenWindow(0, 100, 100, 200, 90, #PB_Window_SystemMenu, "einfach... pb-anigif!") 
handle = CreateWindowEx_(0,"AtlAxWin","res://" + GetFilePart(ProgramName()) + "/ani.htm",#WS_VISIBLE|#WS_CHILD|#WS_DISABLED ,5,5,60,54,WindowID(0),0,GetModuleHandle_(0),0) 
Repeat : Until WaitWindowEvent()=#PB_Event_CloseWindow
CloseWindow(0)
CloseLibrary(0)
End 
die idee besteht nun darin , ALLES aus der resource zu übergeben . in der resource liegt die animierte gif (kann im prinzip auch png oder jpg sein) . wichtig ist hier zusätzlich ein mini-html-file , was das image dann für den "angezapften" webrowser richtig positioniert :

<HTML>
<BODY scroll='no' leftmargin='0' topmargin='0'>
<img src="win.gif">
</BODY>
</HTML>


... damit liegt alles im richtigen rahmen !

hier alles komplett zum download ---> http://kyf.net/tmp/anigif.zip
1:0>1
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Kompliment! Du hast sogar an MARGIN gedacht!
Aber wie bekomme ich Transparenz hin?

Da hilft wohl höchstens die Mini-HTML erweitern, auf bgcolor="FARBE" hin parsen und FARBE druch einen übergebenen, hexadezimalen Wert austauschen. Könnte dann antürlich auch ein Wort sein, z. B. RED statt #FF0000, BLUE statt #0000FF, usw.

Aber selbst wenn: das wäre dann imemr noch keine echte Tranzparenz, weil ich durch das Webgadget nicht hindurchsehen kann. Sondern es würde ja nur eine "halbe Tranzparenz" vorgegaukelt.

Trotzdem Kompliment!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

Beitrag von bingo »

mit echter transparenz - das wird mit html nix ... ansonsten ist fast alles möglich !

die einzige möglichkeit eine animation MIT transparenz laufen zu lassen , geht über avi (CreateWindowEx und "SysAnimate32") wobei 0,255,255 ("das hässliche grün/blau") den transparenten farbteil ausmacht . das gleiche prinzip wie bei den win-animationen .

CreateWindowEx_(0,"SysAnimate32","",#ACS_CENTER|#WS_CHILD|#WS_VISIBLE|#ACS_AUTOPLAY|#ACS_TRANSPARENT,5,5,60,54,WindowID(0),0,GetModuleHandle_(0),0)

Bild

-- nachtrag 26.02./20.00 --

bgcolor=threedface .... macht den fensterhintergrund zum html-hintergrund

<HTML>
<BODY bgcolor=threedface scroll='no' leftmargin='0' topmargin='0'>
<img src="win.gif">
</BODY>
</HTML>


wenn win.gif eine transparenz hat , erscheint dort die fensterfarbe ! (klappt nicht , wenn da ein brush d'raufliegt ! dort liegt dann nicht die brush-farbe , sondern ebenfalls die fensterfarbe !)

echte transparenz für [ani-]gif :allright:

<HTML>
<BODY bgcolor=transparent scroll='no' leftmargin='0' topmargin='0'>
<img src="win.gif">
</BODY>
</HTML>



... wenn man sich die in den win-dll's versteckten html-resourcen anschaut , kommt man schon darauf , was alles auf diese weise möglich ist :shock:
1:0>1
Antworten