Hallo Autoit-Gemeinde,
für mein Proggi habe ich ein Hilfefenster mittels GuiCtrlCreateEdit erzeugt. Das Edit-Control habe ich mit GuiCtrlSetData befüllt. So weit so gut.
Leider ist diese Art der Darstellung eines Hilfetextes aber ziemlich aufwendig, wenn man den Text anpassen muss. Gibt es eine Möglichkeit den vorher erstellten Text z. B. aus einer Textdatei, in irgend ein Autoit-Control/Fenster mit Absätzen, Zeilenvorschüben und Tabulatoren usw. hinein zu kopieren?
einfaches Hilfefenster(GUICtrlEdit) - Einfügen von "formatiertem" Text
-
hipfzwirgel -
22. Oktober 2020 um 11:28 -
Erledigt
-
-
Ein Ansatz wäre z.B. https://autoit.de/onlinehilfe/on…Edit_Create.htm
-
- Offizieller Beitrag
Oder verwende Html (bevorzuge ich):
AutoIt
Alles anzeigen#include <GUIConstantsEx.au3> #include <IE.au3> #include <WindowsConstants.au3> OnAutoItExitRegister('_exit') Local $sHtml = _ '<!DOCTYPE html>' & @CRLF & _ '<html>' & @CRLF & _ ' <head>' & @CRLF & _ ' <meta charset="utf-8">' & @CRLF & _ ' <title>Using inline CSS styles</title>' & @CRLF & _ ' <style>' & @CRLF & _ ' body {' & @CRLF & _ ' font-family: sans-serif;' & @CRLF & _ ' }' & @CRLF & @CRLF & _ ' h2 {' & @CRLF & _ ' color: rgb(230, 107, 0);' & @CRLF & _ ' }' & @CRLF & @CRLF & _ ' </style>' & @CRLF & _ ' </head>' & @CRLF & _ ' <body>' & @CRLF & @CRLF & _ ' <h1>Hilfe</h1>' & @CRLF & _ ' <h2>Vorwort</h2>' & @CRLF & _ ' <p>Diese Hilfe wird dich unterstützen bei der Nutzung des Programms</p>' & @CRLF & _ ' <h2>Inhalt</h2>' & @CRLF & _ ' <ul>' & @CRLF & _ ' <li>A</li>' & @CRLF & _ ' <li>B</li>' & @CRLF & _ ' <li>C</li>' & @CRLF & _ ' <li>D</li>' & @CRLF & _ ' </ul>' & @CRLF & _ ' </body>' & @CRLF & _ '</html>' & @CRLF Global $HelpHtml = StringReplace(@TempDir & "\help.html", '\', '/') FileWrite($HelpHtml, $sHtml) GUICreate("Embedded Html", 640, 580, _ (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _ $WS_OVERLAPPEDWINDOW + $WS_CLIPSIBLINGS + $WS_CLIPCHILDREN) Local $oIE = _IECreateEmbedded() GUICtrlCreateObj($oIE, 10, 40, 600, 360) GUISetState(@SW_SHOW) _IENavigate($oIE, "file:///" & $HelpHtml) While 1 Local $iMsg = GUIGetMsg() Select Case $iMsg = $GUI_EVENT_CLOSE ExitLoop EndSelect WEnd GUIDelete() Exit Func _exit() FileDelete($HelpHtml) EndFunc
-
Oder verwende Html
Da der Internet Explorer in absehbarer Zukunft komplett eingestampft wird, werden die _IE-Funktionen dann sicher auch nicht mehr funktionieren...
-
- Offizieller Beitrag
werden die _IE-Funktionen dann sicher auch nicht mehr funktionieren..
IE war hier nur zu Demozwecken. Ich packe eine abgespeckte Opera Portable Version bei und öffne darin die Hilfedatei. Der Browser lässt sich so konfigurieren, dass keinerlei Menü, Adresszeile etc. sichtbar ist, sieht dann wie ein Editierfenster aus.
-
Ersteinmal ein Sorry an hipfzwirgel für das carpern, wollte da nichts neues für aufmachen.
Die letzte mir bekannte war die 12USB Version von Opera wo man über die skin.ini Anpassungen machen konnte. Geht das auch mit den neueren USB Versionen?
Wenn ja wo, bevor ich mich wieder auf tagelange Suche begebe.
-
- Offizieller Beitrag
Die letzte mir bekannte war die 12USB Version von Opera wo man über die skin.ini Anpassungen machen konnte. Geht das auch mit den neueren USB Versionen?
Ich verwende die Version 12.18.1872.0, da ich neben Portabilität auch Wert auf geringe Dateigröße lege. Früher war portabel in der Regel auch ein Garant für kleine Dateien - aber das interessiert heute scheinbar keinen mehr, da USB-Datenträger immer größer werden. Während die v12.18 nur 31 MB auf dem Datenträger belegt, braucht die aktuelle Version v72.0 64,5 MB!
Aktuelle Versionen sind für offline Nutzung auch nicht erforderlich. Alles was da an Neuigkeiten drin ist betrifft im Wesentlichen Online-Sicherheit, also für meine Offline-Nutzung völlig uninteressant. Am Liebsten würde ich ja die Uraltversion des K-Meleon Browsers nehmen, der hatte nicht mal 2 MB, kann aber leider die neuesten Stylings nicht umsetzen.
Falls jemand Bedarf hat, die Version kann hier herunter geladen werden.
-
Danke dir
-
@ Musashi:
gibt es die Möglichkeit die Schriftart des GUICtrlRichEdit an die des zugrunde liegenden Textes anzupassen? Das Ctrl hat die Schrift MS Shell dlg 8.25 während die Textdatei im Editor mit Courier Größe 11 erzeugt wurde.
Dadurch haben z.B. Tabulatoren oder Bindestriche andere Größen... -
gibt es die Möglichkeit die Schriftart des GUICtrlRichEdit an die des zugrunde liegenden Textes anzupassen?
Ich bin nicht sicher, was Du genau meinst (habe aber auch noch nicht viel mit RichText gemacht
) ?
Hier eine Beispieldatei RTF-Demodatei.rtf (als .zip) und die Anzeige mittels :
AutoIt
Alles anzeigen#include <GUIConstantsEx.au3> #include <GuiRichEdit.au3> #include <WindowsConstants.au3> Example() Func Example() Local $hGui, $iMsg, $idBtnQuit, $hRichEdit, $sRTFText $hGui = GUICreate("Beispiel (" & StringTrimRight (@ScriptName, 4) & ")", 800, 600, -1, -1) $hRichEdit = _GUICtrlRichEdit_Create($hGui, "", 20, 20, 700, 500, _ BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL)) $idBtnQuit = GUICtrlCreateButton("Ende", 300, 550, 100, 30) $sRTFText = FileRead(@ScriptDir & "\RTF-Demodatei.rtf") _GUICtrlRichEdit_SetText($hRichEdit, $sRTFText) GUISetState(@SW_SHOW) While True $iMsg = GUIGetMsg() Select Case $iMsg = $GUI_EVENT_CLOSE Or $iMsg = $idBtnQuit _GUICtrlRichEdit_Destroy($hRichEdit) ; wird benötigt, da sonst das Skript abstürzt ;GUIDelete() ; ist auch in Ordnung Exit EndSelect WEnd EndFunc ;==>Example
(der Text wurde mit Wordpad erstellt)
Gruß Musashi
-
_GUICtrlRichEdit_Destroy($hRichEdit) ; wird benötigt, da sonst das Skript abstürzt
Hm... also bei mir stürzt nichts ab, wenn ich diese Zeile auskommentiere...
-> Exit code: 0
AutoIt: 3.3.14.5, OS: WIN_10/X64
-
Hm... also bei mir stürzt nichts ab, wenn ich diese Zeile auskommentiere...
Das habe ich, dreist wie ich bin, einfach mal so aus der Hilfe übernommen
, siehe : _GUICtrlRichEdit_Create
-
Das habe ich, dreist wie ich bin, einfach mal so aus der Hilfe übernommen
Also ehrlich, wie kannst du nur...
Schau mal hier...
https://www.autoitscript.com/autoit3/docs/l…dit_Destroy.htm
AutoIt... Select Case $iMsg = $GUI_EVENT_CLOSE GUIDelete() ; needed unless script crashes if DoIt as not been pushed Exit Case $iMsg = $idBtnDoIt _GUICtrlRichEdit_Destroy($hRichEdit) EndSelect ...
Und in der EN-Hilfe zu v3.3.14.5 sieht es bei _GUICtrlRichEdit_Create bei mir so aus...
-
Schau mal hier...
Da hast Du recht. Ich habe mir mal den momentan aktuellsten Stand heruntergeladen :
AutoIt 3.3.14.5 deutsch / englische Hilfe verfügbar - Stand 2020.08.30
https://autoit.de/offline-hilfe.zip
Im Beispielskript zur Funktion _GUICtrlRichEdit_Destroy steht :
AutoIt
Alles anzeigen... While True $iMsg = GUIGetMsg() Select Case $iMsg = $GUI_EVENT_CLOSE GUIDelete() ; wird benötigt, da sonst das Skript abstürzt Exit Case $iMsg = $idBtnDoIt _GUICtrlRichEdit_Destroy($hRichEdit) EndSelect WEnd
Im Beispielskript zur Funktion _GUICtrlRichEdit_Create steht hingegen :
AutoIt... While True $iMsg = GUIGetMsg() Select Case $iMsg = $GUI_EVENT_CLOSE _GUICtrlRichEdit_Destroy($hRichEdit) ; wird benötigt, da sonst das Skript abstürzt ;~ GUIDelete() ; ist auch in Ordnung Exit EndSelect WEnd
Auch bei mir stürzt in den Skripten nichts ab, wenn ich die beschriebene(n) Zeile(n) auskommentiere.
Seltsam
.