image einblenden lassen ?

Anfängerfragen zum Programmieren mit PureBasic.
xverbatim
Beiträge: 88
Registriert: 20.08.2005 20:19

image einblenden lassen ?

Beitrag von xverbatim »

hi,

wie kann ich ein image, welches ich auf einem window habe, einblenden lassen oder mit einem effekt versehen einblenden lassen.

auf purearea habe ich nichts gefunden; nur irgenwie mit sprite....
arbeite mich gerade in purebasic ein...und blick da noch nicht so ganz durch ;-(

hat zufällig jemand einen einfachen beispielcode?


gruß
xverbatim
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Wenn du wirklich Fenster und nicht Screen meinst dann gar nicht. Das müsstest du dann selber schreiben und dich mit Bitmap Manipulation auseindander setzen. Fürn Screen wäre es simpel: DisplayTranslucentSprite().
xverbatim
Beiträge: 88
Registriert: 20.08.2005 20:19

ok

Beitrag von xverbatim »

ja, ich meinte fenster....

hmmm

kann es sein, daß ich deshalb auch keine sprites auf meine fenster bekomme ?

ich versuche gerade von einer dll aus, in meinem fenster ein sprite darzustellen, was aber immer zu abstürzen führt...
siehe hier http://www.purebasic.fr/german/viewtopic.php?t=11726

oder geht es doch irgendwie ?

gruß xverbatim
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Wende AnimateWindow_() auf die GagetID() des ImageGadget()s mit dem #AW_BLEND-Effekt an!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
xverbatim
Beiträge: 88
Registriert: 20.08.2005 20:19

?

Beitrag von xverbatim »

"Wende AnimateWindow_() auf die GagetID() des ImageGadget()s mit dem #AW_BLEND-Effekt an"
mir rauscht der kopf ;-)

versteh ich nicht, kannst Du mir das bitte genauer erklären...

den befehl animatewindow gibts doch nicht oder ist das eine api ?

fragen über fragen, leichter nachvollziehbarer code hilf mir am meisten...

gruß+danke
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

> oder ist das eine api ?

ja, wie man unschwer am unterstrich erkennen kann.
dummerweise ist der in der älteren win32.hlp nicht enthalten.


> kann es sein, daß ich deshalb auch keine sprites auf meine fenster bekomme ?

weshalb?
sprites kann man grundsätzlich nicht auf fenstern darstellen, nur auf screens.

wozu brauchst du den effekt denn.
ich bezweifle mal, dass du 256 images in einer liste nacheinander einfaden willst.
wenn es zum beispiel ums einblenden eines willkommen-bildes geht oder sowas,
dann könntest du einen windowedscreen in der gewünschten größe verwenden,
darauf kannst du mit sprites arbeiten.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
50-Pfennig
Beiträge: 75
Registriert: 22.01.2007 22:24
Wohnort: 40764 Langenfeld
Kontaktdaten:

wie wärs mit OpenWindowedScreen()

Beitrag von 50-Pfennig »

also, wenn du tatsächlich sprites darstellen willst, und das auf nem fenster sein soll, öffnest du am besten einen screen auf dem aktuellen fenster mit OpenWindowedScreen()-vorher natürlich net InitSprite() vergessen-und dann kannste die sprites darauf drstellen, aber praktischer wäre es, wenn du
StartDrawing(WindowOutput())...StopDrawing()
benutzt. damit kannste dann bilder aufm fenster ohne screen darstellen.
schau am besten nochma in die befehls-library...viel glück und peace :wink:
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Klar kann ich das erklären. Da der Browser aber einfach zuging, habe ich keinen Bock, alles nocheinmal neu zu schreiben, deshalb in Kursversion -.-


AnimateWindow_() ist eigentlich für Fenster gedacht, funktioniert jedoch auch mit Gadgets.

Führe AnimateWindow_() wie folgt aus, um einen Effekt zu erzielen:

Code: Alles auswählen

AnimateWindow_(WindowID(#fenster), 1000, #AW_CENTER)
Dies ist ein Beispielcode für Fenster; gebe das Fensterhandle an.

Code: Alles auswählen

AnimateWindow_(GadgetID(#imagegadget), 500, #AW_BLEND)
Beispiel für ein Gagdget; du brauchst hier jedoch das Gadget-Handle an erster Stelle.


Der 2. Parameter legt fest, wie lange der Effekt dauern soll in Millisekunden. Der 3. Parameter legt fest, welcher Effekt ausgeführt werden soll.

Bitte schaue auf dieser Seite nach, welche Effekte es alle gibt (Englisch); dies ist das MSDN, wo (fast?) alle API-Befehle aufgeführt sind. Du erfährst hier auch, wie du Fenster/gadgets verschinden lassen kannst (#AW_HIDE) und was der Rückgabewert der Funktion bedeutet.

Link: http://msdn2.microsoft.com/en-us/library/ms632669.aspx

Hinweis: Soll ein Fenster/Gadget eingeblendet werden, musst du es vorher verstecken (HideGadget() oder HideWindow()). Soll etwas ausgeblendet werden, muss es vorher sichtbar sein.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten