Seite 2 von 2

Verfasst: 05.11.2005 18:47
von ts-soft
Delle hat geschrieben:Übrigens der ganze ATL-Code oben ist überflüssig, weil es auch so geht ;)

SetGadgetText(0,"ABOUT:<body>ticker</body>")

0 = WebGadget
Aber nur wenn AktiveDesktop aktiv ist, somit sowieso eine Instanz des Internet Explorers läuft und die DLL somit geladen wurde. :mrgreen:

/Nachtrag: Das Weggadget lädt die ja auch automatisch :freak:

In 4.0

Verfasst: 22.11.2006 19:49
von hiltwin
Hallo,
ich hab das Beispiel mal für 4.0 aufbereitet und den Wechsel des Textes sowie Layout aufbereitet.

Frage an die Experten:

Kann man so vorgehen mit dem

Code: Alles auswählen

DestroyWindow_(thandle1) 
und dem erneuten Aufrufen, oder kann das Kompliaktionen erzeugen und geht man eher anders vor?

Frdl. Gruss
Hiltwin

Code: Alles auswählen

;beispiel farbiger ticker mit atl.dll - hilfe 

tickertxt1.s = "<BODY scroll='no' leftmargin='0' topmargin='0' bgcolor='black' text='red'><font size='2' face='Arial'><marquee direction=left scrollamount=5>*** test *** <b><font color='white'>test</font></b> </marquee></font></BODY>" 

OpenWindow(0,0,0,222,200,"ticker...",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
 If CreateGadgetList(WindowID(0)) 
    ButtonGadget(2, 10, 45, 120, 20, "Farbe wechsel dich") 
EndIf    
;tickerfenster 
thoehe = 20 
tbreite = 200 
OpenLibrary(0, "ATL.dll") 
CallFunction(0,"AtlAxWinInit") 
thandle1 = CreateWindowEx_(0,"AtlAxWin","ABOUT:" + tickertxt1,#WS_VISIBLE|#WS_CHILD|#WS_DISABLED ,10,10,tbreite,thoehe,WindowID(0),0,GetModuleHandle_(0),0) 


Repeat 

    Event = WaitWindowEvent() 
    If Event = #PB_Event_Gadget 
      GadgetID = EventGadget()
      If GadgetID = 2 
DestroyWindow_(thandle1) 
tickertxt1.s = "<BODY scroll='no' leftmargin='0' topmargin='0' bgcolor='#ece9d8' text='black'><font size='2' face='Arial'><marquee direction=left scrollamount=5>Der Test nun mit anderer Hintergrundfarbe<b><font color='white'> Jetzt mit geändertem Text</font></b> </marquee></font></BODY>" 
thandle1 = CreateWindowEx_(0,"AtlAxWin","ABOUT:" + tickertxt1,#WS_VISIBLE|#WS_CHILD|#WS_DISABLED ,10,10,tbreite,thoehe,WindowID(0),0,GetModuleHandle_(0),0) 
      EndIf 
    EndIf 



Until WaitWindowEvent()=#PB_Event_CloseWindow 

DestroyWindow_(thandle1) 
CloseLibrary(0) 
End

Verfasst: 22.11.2006 21:21
von Andre
@hiltwin: schön :)

Bin zwar kein wirklicher Experte - denke aber schon, dass das mit dem DestroyWindow_() in Ordnung geht.

Im Code ändern solltest Du mal noch die Zeile:

Code: Alles auswählen

Until WaitWindowEvent()=#PB_Event_CloseWindow 
in

Code: Alles auswählen

Until Event=#PB_Event_CloseWindow
Sonst "verschluckst" Du jedesmal ein Event durch den doppelten Aufruf von WaitWindowEvent(). Merkst Du daran, dass Du den Schließ-Button zweimal anklicken musst.

..

Verfasst: 22.11.2006 22:22
von hiltwin
Andre hat geschrieben: Sonst "verschluckst" Du jedesmal ein Event durch den doppelten Aufruf von WaitWindowEvent(). Merkst Du daran, dass Du den Schließ-Button zweimal anklicken musst.
:freak: Und ich hab mich schon gefragt, ob ich noch ganz frisch bin, weil das blöde Testding immer erst auf den zweiten Klick reagierte :wink:

Danke ...

Verfasst: 22.11.2006 23:08
von Alves
@ AND51
ich seh da keinen Unterschied?!