beispiel farbiger ticker mit atl.dll - hilfe

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
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
hiltwin
Beiträge: 311
Registriert: 06.10.2005 11:08
Wohnort: D-31177 Harsum
Kontaktdaten:

In 4.0

Beitrag 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
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1765
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Beitrag 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.
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
hiltwin
Beiträge: 311
Registriert: 06.10.2005 11:08
Wohnort: D-31177 Harsum
Kontaktdaten:

..

Beitrag 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 ...
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

@ AND51
ich seh da keinen Unterschied?!
Antworten