Html insert / Bitte um Tipps !

In dieser Linux-Ecke dürfen nur Themen rund um Linux geschrieben werden.
Beiträge, die plattformübergreifend sind, gehören ins 'Allgemein'-Forum.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Html insert / Bitte um Tipps !

Beitrag von ccode_new »

Hallo liebe Purebasic- Fans/Nutzer/Freaks/Profis,

hat jemand einen Tipp wie man so etwas:

Code: Alles auswählen

QtScript(~"gadget(0).insertHtml(\"<span style='text-decoration: line-through'>&nbsp;</span>\")")
ohne abschließendes Kommando einfügen kann, bzw. wie man das Leerzeichen gegen "gar kein Zeichen" ersetzen kann ?

(Sollte dies nur auf umständlicher Art möglich sein ist das auch nicht so schlimm, aber hat da jemand vielleicht einen Tipp.)

(Hier werden sich wohl noch die wenigsten mit dem Qt-Subsytem für PureBasic auseinandergesetzt haben.)
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
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: Html insert / Bitte um Tipps !

Beitrag von ts-soft »

ccode_new hat geschrieben:wie man das Leerzeichen gegen "gar kein Zeichen" ersetzen kann ?
Vielleicht so: #Empty$ ?
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
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Html insert / Bitte um Tipps !

Beitrag von ccode_new »

Hallo ts-soft,

leider ist dem nicht so.

Das hier:

Code: Alles auswählen

QtScript(~"gadget(0).insertHtml(\"<span style='text-decoration: line-through'>"+#Empty$+~"</span>\")")
...wird dann nicht mehr ausgeführt.

(Ersetzt man aber das "#Empty$" gegen irgendetwas anderes (z.B. "Ich bin leer") wird es ausgeführt. (Und das </...> Zeichen scheint Pflicht zu sein.))
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Html insert / Bitte um Tipps !

Beitrag von ccode_new »

@Mijikai:
Dabei kommt so etwas lustiges bei raus:
!_PB_NullConstant_! (Durchgestrichen)

????

Die Verwendung eines solchen Zeichen:

&zwnj; oder &zwj; oder &#8204; oder &#8205;

ist schon nah dran, aber für mich keine perfekte Lösung.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Html insert / Bitte um Tipps !

Beitrag von Sicro »

Ein vollständiger Test-Code wäre hilfreich, damit nicht jeder von uns einen selber erstellen muss.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Html insert / Bitte um Tipps !

Beitrag von ccode_new »

Testcode:

Code: Alles auswählen

Global EditWin

Global editHtml

Enumeration FormGadget
  #editHtml
  #btnInsertHtml
EndEnumeration

Declare ResizeGadgetsEditWin()

Procedure OpenEditWin(x = 0, y = 0, width = 600, height = 400)
  EditWin = OpenWindow(#PB_Any, x, y, width, height, "Html-Insert-Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
  SetWindowColor(EditWin, RGB(255,255,255))
  EditorGadget(#editHtml, 0, 30, 600, 370)
  ButtonGadget(#btnInsertHtml, 0, 0, 600, 30, "Insert HTML")
  GadgetToolTip(#btnInsertHtml, "Fügt HTML-Code ein.")
  QtScript(~"gadget(0).setTextColor(\"" + "#"+Hex(Red(RGB(255,0,0)))+"0000" + ~"\")")
  QtScript(~"gadget(0).setText(\"Hallo!\")")
EndProcedure

Procedure ResizeGadgetsEditWin()
  Protected FormWindowWidth, FormWindowHeight
  FormWindowWidth = WindowWidth(EditWin)
  FormWindowHeight = WindowHeight(EditWin)
  ResizeGadget(#btnInsertHtml, 0, 0, FormWindowWidth - 0, 30)
  ResizeGadget(#editHtml, 0, 30, FormWindowWidth - 0, FormWindowHeight - 30)
EndProcedure

Procedure EditWin_Events(event)
  Select event
    Case #PB_Event_SizeWindow
      ResizeGadgetsEditWin()
    Case #PB_Event_CloseWindow
      ProcedureReturn #False
      
    Case #PB_Event_Menu
      Select EventMenu()
      EndSelect
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 1
          QtScript(~"gadget(0).insertHtml(\"<span style='text-decoration: line-through'>&zwnj;</span>\")")
      EndSelect
  EndSelect
  ProcedureReturn #True
EndProcedure

OpenEditWin()
Repeat
  
Until Not EditWin_Events(WindowEvent())
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: Html insert / Bitte um Tipps !

Beitrag von Sicro »

Danke für den Test-Code. Nun ist auch klar, um welches Gadget es sich bei dir handelt.

Kannst du bitte noch beschreiben, was du vorhast?
Ein "<span></span>" mit dem Style "durchstreichen" ohne Inhalt einzufügen macht für mich kein Sinn.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Html insert / Bitte um Tipps !

Beitrag von ccode_new »

Sicro hat geschrieben:Kannst du bitte noch beschreiben, was du vorhast?
Ein "<span></span>" mit dem Style "durchstreichen" ohne Inhalt einzufügen macht für mich kein Sinn.
Für mich macht das auch keinen Sinn.

Aber alles OK!

Ich kann mir das mit String-Funktionen brauchbar anpassen.

(Wer für eine möglichst elegante/schnelle String-Anpassung noch Tipps hat kann diese gerne einbringen.)

-> Der Style muss durch Textmarkierung übernommen werden können (und der bestehende Style (z.B Bold) muss erhalten bleiben)
-> Der bestehende Style muss ab der "Einfügestelle" mit dem neuen Style ergänzt werden.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Derren
Beiträge: 557
Registriert: 23.07.2011 02:08

Re: Html insert / Bitte um Tipps !

Beitrag von Derren »

Du möchtest sicher so etwas (pseudo code):

Code: Alles auswählen

insert(<span style="my style">)
insert(bisschen text)
insdert(</span>)
Du bearbeitest aber keien Text-Datei, oder sendest Quelltext Häppchenweise an den Browser, der erst dann anfängt die Seite zu rendern, wenn das vollständige Dokument geladen wurde.
Sondern, ich nehme an, dass nach jeder Änderung des Document-Object-Models neu gerendert wird, ähnlich Ajax. So wie bei PB mit "AddGadgetItem()" etc. Sonst müsstest du, wie bei einem Canvas, bei jeder kleinen Änderung, alles neu senden.

Daher musst du wohl ein gültiges DOM-Element erzeugen und dieses dann in das Gadget einfügen. Denn wie bereits gesagt wurde: Ein leeres, gestyltes <span> ist nicht besonders sinnvoll und wird daher von der Engine direkt verworfen.
Signatur und so
Antworten