Hintergrundfarbe im EditorGadget

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Re: Hintergrundfarbe im EditorGadget

Beitrag von bobobo »

Was habt ihr da mit Scintilla ???? :angry:
das EditorGadget ist unter Windows ein RichtextControl
und kann durchaus das gewünscht darstellen.

http://www.purearea.net/pb/CodeArchiv/G ... +Styles.pb

das was da fehlt ist eine Funktion die Schreibmarkerposition in einer bereits mit Leerzeichen ausgefüllten Zeile
zu kontrollieren.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Re: Hintergrundfarbe im EditorGadget

Beitrag von Fluid Byte »

bobobo hat geschrieben:das EditorGadget ist unter Windows ein RichtextControl und kann durchaus das gewünscht darstellen.
Nein, kann es nicht. Erstens ist die Linie nicht durchgehend und zweitens kann es kaum Sinn und Zweck sein jede Zeile mit Leerzeichen auszufüllen. Nett gemeint bobobo aber Scintilla ist immer noch vorzuziehen.
Windows 10 Pro, 64-Bit / Outtakes | Derek
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: Hintergrundfarbe im EditorGadget

Beitrag von Sunny »

OK... der Link von ts-soft hat mir schonmal gut weiter geholfen, ist eine nette kleine Anleitung. Dankeschön.

Aber wie schaff ich es, dass einzelne Zeilen eine andere Hintergrundfarbe bekommen, muss ich da mit dem SendMessage-Befehl arbeiten? Hat da vieleicht mal jemand ein kleines Code-Beispiel?
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

Re: Hintergrundfarbe im EditorGadget

Beitrag von ts-soft »

Code: Alles auswählen

XIncludeFile "ScintillaHelper.pbi"

InitScintilla()
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "", #PB_Window_SystemMenu)
ScintillaGadget(0, 0, 0, 640, 480, 0)

SCI_SetGadgetText(0, "1.te Zeile" + #CRLF$ + "2.te Zeile" + #CRLF$ + "3.te Zeile")

ScintillaSendMessage(0, #SCI_SETCARETLINEBACK, #Red)
ScintillaSendMessage(0, #SCI_SETCARETLINEVISIBLE, #True)

SetActiveGadget(0)
SCI_AddGadgetItem(0, 1, "Ich bin rot") 

While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: Hintergrundfarbe im EditorGadget

Beitrag von Sunny »

OK. Das werd ich gleich mal ausprobieren, dankeschön.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: Hintergrundfarbe im EditorGadget

Beitrag von Sunny »

Ja, das is auf jeden Fall schonmal ein guter Anfang... aber hier wird nur der Hintergrund in der Zeile geändert, in der der Cursor ist. Aber ich möchte sowas in der Art wie ICQ zurecht friemeln, d.h. ich möchte z.b. von einem EditorGadget oder einem ScintillaGadget den Text in ein anderes ScintillaGadget senden und zur besseren Übersicht will ich, das sich bei jedem gesendeten Text die Hintergrundfarbe abwechselt.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Hintergrundfarbe im EditorGadget

Beitrag von HeX0R »

Wenn es sowas wie ICQ werden soll, kannst du auch mal über das WebGadget nachdenken.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Re: Hintergrundfarbe im EditorGadget

Beitrag von Kaeru Gaman »

wäre dazu nicht auch ein ListGadget geeignet?
nur mal ganz blöde gefragt, ist überhaupt nicht mein Tisch sowas...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
Sunny
Beiträge: 290
Registriert: 19.02.2009 06:02

Re: Hintergrundfarbe im EditorGadget

Beitrag von Sunny »

Wenn es sowas wie ICQ werden soll, kannst du auch mal über das WebGadget nachdenken.
Ich wüsste jetzt nicht, wie mir das WebGadget weiterhelfen sollte.
wäre dazu nicht auch ein ListGadget geeignet?
Beim ListIconGadget ist soweit ich weiß, leider kein Zeilenumbruch möglich.

Es würde mir schon vollkommen ausreichen, wenn ich wüsste wie das mit den Hintergrundfarben in verschiedenen Zeilen funktioniert, mehr will ich (erstmal :) ) gar nich wissen.
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Hintergrundfarbe im EditorGadget

Beitrag von HeX0R »

Sunny hat geschrieben:Ich wüsste jetzt nicht, wie mir das WebGadget weiterhelfen sollte.
Naja, z.B. so:

Code: Alles auswählen

Procedure main()
	Protected HTML.s
	
	HTML = "<html><head><title></title>" + #CRLF$
	HTML + "<style type='text/css'>" + #CRLF$
	HTML + ".style_normal {font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #006600;background-color: #FAFAFA;}" + #CRLF$
	HTML + ".style_red {font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #000000;background-color: #ff8A8A;}" + #CRLF$
	HTML + ".style_green {font-family: Courier, 'Courier New', sans-serif; font-size: 11px; color: #000000;background-color: #8AFF8A;}" + #CRLF$
	HTML + "</style>" + #CRLF$
	HTML + "</head>" + #CRLF$
	HTML + "<body>" + #CRLF$
	
	HTML + "<div class='style_normal'>This Line is normal...</div>" + #CRLF$
	HTML + "<div class='style_red'>This Line is Red...</div>" + #CRLF$
	HTML + "<div class='style_green'>This Line is Green...</div>" + #CRLF$
	HTML + "<div class='style_red'>This Line is Red...</div>" + #CRLF$
	HTML + "<div class='style_green'>This Line is Green...</div>" + #CRLF$
	
	HTML + "</body></html>"
	
	OpenWindow(0, 0, 0, 300, 300, "", #PB_Window_Tool | #PB_Window_SystemMenu)
	WebGadget(0, 5, 5, 290, 270, "")
	SetGadgetItemText(0, #PB_Web_HtmlCode, HTML)
	
	While WaitWindowEvent() <> #PB_Event_CloseWindow : Wend
	
EndProcedure

main()
Antworten