BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[GELÖST] Puristischer Lesemodus gesucht

Komponentenübergreifende Themen zu Libreoffice
musikai
Beiträge: 262
Registriert: Do 14. Mai 2015, 17:53

Re: [GELÖST] Puristischer Lesemodus gesucht

Beitrag von musikai » Mo 13. Feb 2023, 23:04

Gefällt mir grundsätzlich gut. Ab und zu werden beim Wiedereinblenden nicht alle Symbolleisten sofort eingeblendet.
Besonders wenn man gescrollt hatte. Wenn ich den Cursor dann auf eine andere Textstelle plaziere, hilft's.
(Das ist aber wohl eher ein LO bug)

Hier ist Dein Dokument ohne input-box. (Das Toggeln ist abhängig vom Status des horizontalen Lineals. Hätte es lieber vom Frame-status abhängig gemacht, aber hab jetzt kein xray zum eintauchen)
Dateianhänge
Lesemodus_02.odt
(243.33 KiB) 52-mal heruntergeladen
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

lino
Beiträge: 29
Registriert: Sa 2. Feb 2019, 17:59

Re: [GELÖST] Puristischer Lesemodus gesucht

Beitrag von lino » Di 14. Feb 2023, 10:54

Wunderbar, DavidG!
... habe mir noch erlaubt, diese beiden Zeilen zu modifizieren:

Code: Alles auswählen

   If sText > "-1" Then blnShow=False
   ...
   .ZoomType=sText	
und das funktioniert sogar :-)
Besten Dank
Lino

DavidG
Beiträge: 195
Registriert: Do 22. Mär 2018, 21:41

Re: [GELÖST] Puristischer Lesemodus gesucht

Beitrag von DavidG » Di 14. Feb 2023, 14:53

Hallo lino,

vielen Dank für die Blumen! :D
-------------------------------
Leider ist Deine Anweisung ist nicht korrekt, ZoomType erwartet einen Datentyp Short, Integer ist auch möglich.

Du prüfst und übergibst einen Text, also den Datentyp String.
In diesem Fall gehe ich davon aus, dass der Basic-Interpreter dies als 0 wertet.
siehe LO-Api:
https://api.libreoffice.org/docs/idl/re ... mType.html

Code: Alles auswählen

   If sText > "-1" Then blnShow=False
   ...
   .ZoomType=sText	

Damit wird vermutlich Deine Ansicht wegen der Konstanten 0 auf OPTIMAL gesetzt.

Code: Alles auswählen

REM ------------------------------------------------------------------------------------------------------
REM 				>>> ZoomType <<<
REM const short 	OPTIMAL = 0
REM  	The page content width (excluding margins) at the current selection is fit into the view. More...
REM  
REM const short 	PAGE_WIDTH = 1
REM  	The page width at the current selection is fit into the view. More...
REM  
REM const short 	ENTIRE_PAGE = 2
REM  	A complete page of the document is fit into the view. More...
REM  
REM const short 	BY_VALUE = 3
REM  	The zoom is relative and is to be set via the property ViewSettings::ZoomValue. More...
REM  
REM const short 	PAGE_WIDTH_EXACT = 4
REM  	The page width at the current selection is fit into the view, with the view ends exactly at the end of the page. More...
REM  
		.ZoomType=4		
REM ------------------------------------------------------------------------------------------------------
Weitere Erläuterung:
Eine Inputbox liefert immer Strings zurück, also keine Zahlen, sondern Ziffern.

Deshalb habe ich den Variablenamen sText verwendet.
Gibst Du nun in die aufpoppende Inputbox eine "Zahl", dann ist dies in Wahrheit eine ZIffer,
mit der man weder Berechnungen anstellen kann, noch hat sie den richtigen Datentyp.

Man kann die Ziffer aber in eine Zahl umwandeln.
Für die Konvertierung gibt es verschiedene Runtime-Funktionen:
http://www.starbasicfaq.de/WelcheRuntim ... ibtes.html
http://www.starbasicfaq.de/WiekannmanVa ... ieren.html

teste mal diesen Code...

Code: Alles auswählen

Sub xConvert
Dim sText as String
Dim nInput as Integer

sText = "12"	' Datentyp STRING (Ziffer)

nInput=cInt(sText)	' Konvertierung in INTEGER

Msgbox nInput*12		' Ergebnis = 144	

REM  Fehlermeldung : unzulässiger Datentyp
REM weil Ziffer mal 12 nicht möglich1
Msgbox sText*12		

End Sub
NACHTRAG

Code: Alles auswählen

   If sText > "-1" Then blnShow=False
Deine IF-Anweisung wird bei genauer Betrachtung NIE WAHR, weil
WENN VARIABLE GRÖSSER "TEXT" DANN VARIABLE=FALSE

Text kann man nur mittels der Operatoren GLEICH (=) oder NICHT (<>) prüfen.
Banane > Apfel mach irgendwie keinen Sinn.

Somit muss erst eine Konvertierung in eine Zahl erfolgen, dann kann man auch < oder > verwenden.
Im Prinzip so:

Code: Alles auswählen

   
Dim sText as String
Dim nText as Integer
Dim blnShow as Boolean

blnShow=True

sText="1"				'Datentyp: STRING
nText= cIt(sText)		'Datentyp: INTEGER

REM Hier die Zahl (-1), NICHT die Ziffer ("-1") eingeben:
If nText > -1 Then blnShow=False
Gruß

David
___________________
WIN 10 PRO
LO 7.4.5.1 (x64)

DavidG
Beiträge: 195
Registriert: Do 22. Mär 2018, 21:41

Re: [GELÖST] Puristischer Lesemodus gesucht

Beitrag von DavidG » Di 14. Feb 2023, 15:54

@musikai,
musikai hat geschrieben:Gefällt mir grundsätzlich gut.
vielen Dank für Deine Rückmeldung und die Verbesserung.
musikai hat geschrieben:Ab und zu werden beim Wiedereinblenden nicht alle Symbolleisten sofort eingeblendet.
Besonders wenn man gescrollt hatte. Wenn ich den Cursor dann auf eine andere Textstelle platziere, hilft's.
(Das ist aber wohl eher ein LO bug)
Ja, in seltenen Fällen ist mir das auch passiert, allerdings hatte ich ein paar Probleme
mit meinem Benutzerprofil und dachte die Ursache dafür sei hier zu suchen.

Da auch Dir dies Verhalten aufgefallen ist, denke ich darüber nach,
die Steuerung des Fensters nicht aus dem Dokument heraus zu "manipulieren",
sondern über die übergeordnete Ebene des Stardesktops.
Muss mich nochmals mit dem Stardesktop auseinanderseetzen.
Ggf. verschwindet dann dieses kleine Manko.
musikai hat geschrieben:(Das Toggeln ist abhängig vom Status des horizontalen Lineals. Hätte es lieber vom Frame-status abhängig gemacht, aber hab jetzt kein xray zum eintauchen)
In der Tat hatte ich auch schon darüber nachgedacht.
Der Frame-Status ist erst einmal OK, sicherlich wäre eine andere Lösung eleganter.
Eine globale Variable (Global blnShow as Boolean) mag ich persönlich nicht so gern,
weil diese bis zur Beendigung von LO speicherresident ist.
Außerdem sind dann noch weitere Abfragen erforderlich, denn es kann ja sein,
dass man mehrere Writer-Dokumente geöffnet hat und dann für jedes geöffnete Fenster eine
eigene Abfrage erfolgen muss.
mmmh...? grübel

Nochmals vielen Dank :D
Gruß

David
___________________
WIN 10 PRO
LO 7.4.5.1 (x64)

musikai
Beiträge: 262
Registriert: Do 14. Mai 2015, 17:53

Re: [GELÖST] Puristischer Lesemodus gesucht

Beitrag von musikai » Di 14. Feb 2023, 22:24

DavidG hat geschrieben:
Di 14. Feb 2023, 15:54
Außerdem sind dann noch weitere Abfragen erforderlich, denn es kann ja sein,
dass man mehrere Writer-Dokumente geöffnet hat und dann für jedes geöffnete Fenster eine
eigene Abfrage erfolgen muss.
mmmh...? grübel
Also ich finde das Lineal als Status-Melder hier völlig ausreichend. Da es ja auch vom Macro ein- und ausgeblendet wird, ist es höchst zuverlässig.
Win7 Pro, Sibelius 7.1.3, Lubuntu 15.10, LibO 4.4.7, OO 4.1.3
Free Project: LibreOffice Songbook Architect (LOSA)
http://struckkai.blogspot.de/2015/04/li ... itect.html

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten