Seite 1 von 1

Eigenes Gadget schreiben

Verfasst: 20.08.2008 15:55
von FrEeKsTeR
Hallo alle zusammen

ich bin immernoch an meinem chat am schreiben, habe die chat anzeige mittlerweile von nem listviewgadget über ein Editorgadget zum Webgadget umgebaut und bin irgendwie mit dem ergebniss überhaubtnicht zufrieden. das editorGadget ist wunderbar einfach und schnell, kann aber leider keine animierten smileys anzeigen und das Web Gadget kann zwar nach allen regeln der html kunst umgebaut und verändert werden, hat aber eine finde ich nicht ganz passende update routine (refresh und dann scrollbar nach unten setzen) jetzt wollte ich fragen wie schwer es ist ein eigenes Gadget zu schreiben bzw nen pahr tuts wie die grundlegende verfahrensweise zum Programmieren einer eigenen lib ist.
wie immer freue ich mich sehr über eine schnelle Antwort und danke im vorraus*g*

mfg FrEeKsTeR

Verfasst: 20.08.2008 19:11
von Fluid Byte
Ehrlich gesagt finde ich ein Webgadget dafür genial. Da musst dich mit keinem API Zeug rumschlagen um Bilder darzustellen. Außerdem kannst mit HTML sehr einfach jegliche Art von Formatierung umsetzen und jeden erdenklichen Inhalt darstellen.

Hier mal ein Beispiel wie wenn es machen könnte:

Code: Alles auswählen

#IDM_EnterKey = 101

Enumeration
	#WEB_Output
	#STR_Input
EndEnumeration

OpenWindow(0,0,0,500,400,"PureChat",#WS_OVERLAPPEDWINDOW | 1)
CreateGadgetList(WindowID(0))
WebGadget(#WEB_Output,0,0,0,0,"")
StringGadget(#STR_Input,0,0,0,0,"Bitte Enter drücken :D :banana:")

Smiley1$ = "<img src='http://www.purebasic.fr/german/images/smiles/icon_biggrin.gif' alt='Very happy' />"
Smiley2$ = "<img src='http://www.rubstudent.de/RSV/Forum/images/smilies/new/banana.gif' alt='Dancing Banana' />"

HTML1$ = "<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>" + #CR$
HTML1$ + "<html xmlns='http://www.w3.org/1999/xhtml'>" + #CR$
HTML1$ + "<head>" + #CR$
HTML1$ + "<meta http-equiv='Content-Type' content='text/html; charset=ISO-8859-1' />"
HTML1$ + "<title>PureChat v0.1</title>" + #CR$
HTML1$ + "<style type='text/css'>" + #CR$
HTML1$ + "	body {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px;}" + #CR$
HTML1$ + "</style>" + #CR$
HTML1$ + "</head>" + #CR$
HTML1$ + "<body onload='javascript: window.scrollTo(0,10000);'>" + #CR$

ChatLog$ = "Ein Chatprogramm mit dem WebGadget()<br />" + #CR$

HTML2$ + "</body>" + #CR$
HTML2$ + "</html>"

SetGadgetItemText(#WEB_Output,#PB_Web_HtmlCode,HTML1$ + ChatLog$ + HTML2$)
SetActiveGadget(#STR_Input)

AddKeyboardShortcut(0,#PB_Shortcut_Return,#IDM_EnterKey)

Repeat
	EventID = WaitWindowEvent()

	If EventID = #PB_Event_Menu
		Select EventMenu()
			Case #IDM_EnterKey		
			Input$ = GetGadgetText(#STR_Input)
			
			If Input$				
				Input$ = ReplaceString(Input$,":D",Smiley1$)
				Input$ = ReplaceString(Input$,":banana:",Smiley2$)
				
				ChatLog$ + Input$ + "<br />" + #CR$
				
				SetGadgetItemText(#WEB_Output,#PB_Web_HtmlCode,HTML1$ + ChatLog$ + HTML2$)					
			EndIf
		EndSelect	
	EndIf
	
	If EventID = #PB_Event_SizeWindow
		ResizeGadget(#WEB_Output,0,0,WindowWidth(0),WindowHeight(0)-20)
		ResizeGadget(#STR_Input,0,WindowHeight(0)-20,WindowWidth(0),WindowHeight(0)-50)
	EndIf
Until EventID = #PB_Event_CloseWindow

Verfasst: 21.08.2008 00:58
von edel
Wenn man erst einmal die WinAPI verstanden hat ist es um ein
vielfaches einfacher seine eigenen Gadgets zu schreiben, als mit mit HTML,
welches eh nur beschissene Abhaengigkeiten mit sich bringt.
Nicht falsch verstehen, HTML ist sehr einfach, allerdings bringt eben das
Native viel mehr Funktionen mit sich und ist auf dauer auch die bessere
Loesung.

Falls du nicht weisst wie du anfangen sollst, schreib eine PM. Ein Wenig
Wissen ueber die Windows API sollte aber vorhanden sein.

Verfasst: 21.08.2008 09:45
von Fluid Byte
edel hat geschrieben:Wenn man erst einmal die WinAPI verstanden hat ist es um ein vielfaches einfacher seine eigenen Gadgets zu schreiben, als mit mit HTML, ...
Er soll doch nicht sein eigenes Gadget mit HTML schreiben. Macht herzlich wenig Sinn. Es soll eine Lösungsmöglichkeit sein wenn er eben nicht sein eigenes Gadget bastelt.
edel hat geschrieben:... welches eh nur beschissene Abhaengigkeiten mit sich bringt.
Welche Abhängigkeiten? Warum sind die bescheiden? Die größte Abhängigkeit dürfte außerdem die vom OS selber sein. Das WebGadget ist eine crossplatform-komptible Lösung.
edel hat geschrieben:Nicht falsch verstehen, HTML ist sehr einfach, allerdings bringt eben das Native viel mehr Funktionen mit sich und ist auf dauer auch die bessere Loesung.
Warum soll das die bessere Lösung sein? Ich meine für dich mag das zutreffen aber das ist halt von Person zu Person unterschiedlich.

Bleibt außerdem die Frage nach animierten Bildern. Wenn er sein eigenes Gadget schreibt wirds kompliziert denke ich. Soll er das .GIF Format selbst importieren? Ein eigenes Format entwickeln?

Verfasst: 21.08.2008 12:26
von FrEeKsTeR
@ Fluid Byte
hmm irgendwie funktioniert dein dingen besser als meins komisch naja du machst das ja auch schon länger als ich *g*
den chat pflück ich jetzt mal auseinander
danke auf jeden fall für dein beispiel *g*

@edel
hmm leider kenn ich mich mit der windows API noch nicht wirklich aus *g*
irgendwann kommt die zeit auch für das *g* danke trotzdem fürs angebot *g*

mfg FrEeKsTeR

Verfasst: 21.08.2008 13:28
von mk-soft
Es gibt von ts-soft eine Include um eigene Gadgets zu erstellen.
Der Link funktioniert leider nicht mehr, kann aber von mein Webspace noch geladen wrden.

http://home.arcor.de/m_kastner/MyCodes/ts-soft/

Beispiel sind auch vorhanden 8)

FF :wink:

Verfasst: 21.08.2008 13:53
von ts-soft
Die CreateGadget Lib ist in PBOSL enthalten, aber das hilft ihm IMHO nicht, selber ein Gadget zu erstellen.

Verfasst: 21.08.2008 16:08
von edel
mk-soft hat geschrieben:Es gibt von ts-soft eine Include um eigene Gadgets zu erstellen.
Der Link funktioniert leider nicht mehr, kann aber von mein Webspace noch geladen wrden.

http://home.arcor.de/m_kastner/MyCodes/ts-soft/

Beispiel sind auch vorhanden 8)

FF :wink:
Ein weiteres Beispiel dafuer wie scheisse man programmiert :D
Kann vielleicht noch als Vorlage dienen, aber irgendwo einbinden
wuerde ich das Zeug nicht mehr.