Teil-Text in Zeile einpassen [gelöst]

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Teil-Text in Zeile einpassen [gelöst]

Re: Teil-Text in Zeile einpassen [gelöst]

von clag » Sa, 21.08.2010 10:19

Hallo turtle47 und all

@turtle47
in deinem ersten Satz hast du schon 2 Fehler
1. in der Klammersetzung,
2. ist die Variable falsch gesetzt
korrekt wäre also "Forum.Gott" 8)
turtle47 hat geschrieben:Tja, man wächst mit seinen Aufgaben.

das mit dem wachsen ist bei mir wie bei allen anderen "Jungtieren" auch ,
wenn man die mit Art und Maul gerechten Happen füttert, essen sie brav alles auf und gedeihen, also sachte anfüttern
schüttete man denen gleich den ganzen Kübel vor die Füße kriegen sie halt das kotzen :mrgreen:

freut dich also nur nicht zu früh...
wenn du wüstest wie viel Ideen in mir schlummern aber mangels Basic-Wissen verkümmern aber auf Beantwortung gieren,
würdest du dich vor der Fragen Flut retten wollen und noch heute hier abmelden :lol:

ein schönes Wochenend
aber ein paar Fragen habe ich bestimmt wieder für euch ...................

Re: Teil-Text in Zeile einpassen [gelöst]

von turtle47 » Fr, 20.08.2010 22:36

Hi Clag,

puh, Gott (Forum) sei Dank, kein Dispatcher-Code.

Tja, man wächst mit seinen Aufgaben. :wink:

Congratulations!

Jürgen

Re: Teil-Text in Zeile einpassen [gelöst]

von clag » Fr, 20.08.2010 19:26

Hallo Leutz,

nach etwas praktischem Einsatz denke ich ein "Airbag" wäre noch ganz nützlich
sonst schrumpft es auch mal versehentlich eine ganze Seite auf eine Zeile zusammen :lol:
kann jetzt nicht mehr passieren

Code: Alles auswählen


    Sub absatzstauchen ' mit "Airbag" !

       odoc = thisComponent
       oviewCursor = odoc.currentController.viewCursor()
       
       oTcursor = odoc.text.createTextcursor()
       oTcursor.gotorange( oviewcursor, false )
       oTcursor.gotoStartofParagraph( false )
       oTcursor.gotoEndofParagraph( true )
       
       oviewcursor.gotoStartofline( false )
       oviewcursor.gotoendofline( true )
       
       
    if Instr( otcursor.string, chr( 10 )) then
       rbreak = Instr( otcursor.string, chr( 10 ))
       oTcursor.collapsetoStart()
       oTcursor.goright( rbreak - 1 , true )
    end if

    scale = 100


    while  otcursor.string <> oviewcursor.string
'-----------------------------------------------------------------------------
	if scale < 75 then
		yn = MsgBox (" Text bereits um 25% gestaucht " & chr(13)_
		& " passt trotzdem nicht in die Zeile "  & chr(13)_
		& " wieder auf 100% setzen? "_
		, 36)
		if yn = 7 then exit sub
		if yn = 6 then oTcursor.CharScaleWidth  = 100
	exit sub
	end if
'----------------------------------------------------------------------------
       oviewcursor.gotostartofline( false )
       scale = scale -1
       oTcursor.CharScaleWidth  = scale
       oviewcursor.gotoendofline( true )
    wend

    End Sub
ich möchte das Makro nicht mehr missen, ein echter Helfer :D

Re: automatischen Umbruch im Text finden

von clag » Fr, 20.08.2010 07:51

Hallo Karolus, Turtle47...........

ja genau so hatte ich mir das gewünscht

jetzt ist es perfekt !

klick und passt, super 8)

der Button dafür ist schon in die Vorlage eingebaut bzw bekommt nen Hotkey

Danke für die Super Unterstützung !
Das birgt für euch aber die Gefahr, ich komme wieder .........
du und turtle ihr habt jetzt freien Eintritt in meiner Dankbar :lol:

Re: automatischen Umbruch im Text finden

von Karolus » Fr, 20.08.2010 06:44

Hallo
Tut das:

Code: Alles auswählen

Sub absatzstauchen

	odoc = thisComponent
	oviewCursor = odoc.currentController.viewCursor()
	
	oTcursor = odoc.text.createTextcursor()
	oTcursor.gotorange( oviewcursor, false )
	oTcursor.gotoStartofParagraph( false )
	oTcursor.gotoEndofParagraph( true )
	
	oviewcursor.gotoStartofline( false )
	oviewcursor.gotoendofline( true )
	
	
if Instr( otcursor.string, chr( 10 )) then
	rbreak = Instr( otcursor.string, chr( 10 ))
	oTcursor.collapsetoStart()
	oTcursor.goright( rbreak - 1 , true )
end if

scale = 100
while  otcursor.string <> oviewcursor.string
	oviewcursor.gotostartofline( false )
	scale = scale -1
	oTcursor.CharScaleWidth  = scale
	oviewcursor.gotoendofline( true )
wend

End Sub
Gruß Karo

Re: automatischen Umbruch im Text finden

von clag » Do, 19.08.2010 23:37

Hi Turtle47,

habe extra nochmal alles gespeichert auf und zu gemacht den Code neu eingefügt aber es bleibt dabei,
mit dem aufpoppen des Print-Fenster ist der Text rechts von CHR(10) aus dem Dokument verschwunden
und wen kein CHR(10) im Text enhalten ist wird der gesamte Text entfernt :shock:

wie kann man erreichen das das nur auf die internen Variablen wirkt ?

Re: automatischen Umbruch im Text finden

von turtle47 » Do, 19.08.2010 23:15

clag hat geschrieben:jetzt müsste man entweder von gleich am Anfang verhindern das beim einlesen von "otcursor,string"
nicht über den chr(10) hinaus bis chr(13) eingelesen wird.
Und das macht der obere Code mit berichtigter Zeile:

Code: Alles auswählen

otcursor.string = Left(otcursor.string,i-1)
Aus:
Er hörte leise Schritte hinter sich. Das bedeutete nichts Gutes. Wer würde ihm schon folgen, spät inCHR(10)der Nacht und dazu noch in dieser engen Gasse.

wird:
Er hörte leise Schritte hinter sich. Das bedeutete nichts Gutes. Wer würde ihm schon folgen, spät in

Re: automatischen Umbruch im Text finden

von clag » Do, 19.08.2010 23:04

Hi turtle47,

da geht etwas schief wenn ich deinen Code einsetze wird damit der Text von der Seite entfernt :shock:
soooo hatte ich das Problem nicht lösen wollen :lol:


kannst du deinen Vorschlag vielleicht noch einmal überdenken ?

Re: automatischen Umbruch im Text finden

von turtle47 » Do, 19.08.2010 22:43

Dann hole Dir den Teil bis zum CHR(10) mit:

Code: Alles auswählen

.....
oTcursor.gotoEndofParagraph( true )
i = instr(otcursor.string, CHR(10))
otcursor.string = Left(otcursor.string,i)
print otcursor.string
.....

Re: automatischen Umbruch im Text finden

von clag » Do, 19.08.2010 22:35

Hi,

die reine Zeile ist doch noch keine Garantie das sie in die Zeile hineinpasst !

das chr(10) wir manchmal dort eingefügt wo der Text so lang ist das ein zusammen schieben keinen Sinn macht und ein Teil per manuellem
ZeilenUmbruch in die nächste Zeile geschickt wird

TesttextTesttextTesttext CHR(10) braucht nicht gestaucht werden

TesttextTesttextTesttextTesttextTesttext CHR(10) muss gestaucht werden um 10%, macht das Makro auch

TesttextTesttextTesttextTesttextTesttext CHR(10)
TesttextTesttextTesttextTesttext CHR(13) soll auch um 10% gestaucht werden aber nur bis CHR(10)

daran hängt sich das Makro aber auf und schrumpft alles bis zu chr(13)

weil der alles String enthält
"otcursor.string" TesttextTesttextTesttextTesttextTesttext CHR(10)TesttextTesttextTesttextTesttext CHR(13)enthält
wenn man den String auf
"otcursor.string" TesttextTesttextTesttextTesttextTesttext CHR(10)
reduzieren könnte, sollte das Makro einwandfrei funktionieren

Re: automatischen Umbruch im Text finden

von turtle47 » Do, 19.08.2010 21:57

clag hat geschrieben:jetzt müsste man entweder von gleich am Anfang verhindern das beim einlesen von "otcursor,string"
nicht über den chr(10) hinaus bis chr(13) eingelesen wird.
Oder wenn das nicht zu verhindern ist den "otcursor,string" vom Rest nach dem chr(10) befreien
Und was bringt Dir das dann?

Dann brauchst Du doch die Lauweite nicht mehr zu ändern wenn Du eine "reine" Zeile ohne Zeilenumbruch hast.

Also für mich bleiben da noch :?: :?:

Re: automatischen Umbruch im Text finden

von clag » Do, 19.08.2010 21:42

Hallo Karo, Turtle

deine Zeile habe ich natürlich gleich ausprobiert, funktioniert auch und findet den chr(10)

jetzt müsste man entweder von gleich am Anfang verhindern das beim einlesen von "otcursor,string"
nicht über den chr(10) hinaus bis chr(13) eingelesen wird.
Oder wenn das nicht zu verhindern ist den "otcursor,string" vom Rest nach dem chr(10) befreien

also

Code: Alles auswählen

otcursor.string = RTrimStr(otcursor.string, CHR(10))
otcursor.string = RTrimStr(otcursor.string, CHR(10)&".*")
leider funktioniert das nicht

wie muss das richtig aussehen ?

Re: automatischen Umbruch im Text finden

von turtle47 » Do, 19.08.2010 20:18

Hi,
clag hat geschrieben:eine Möglichkeit wäre wohl direkt nach chr(10) abzufragen aber wie ?

Code: Alles auswählen

if Instr(otcursor.string,CHR(10)) then

Re: automatischen Umbruch im Text finden

von clag » Do, 19.08.2010 18:15

Hallo Karolus oder auch andere Mitleser :)

ich habe eine ganze weile mit dem Code von dir herum experimentiert
und habe so glaube die Ursache für den Fehler mit der endlos Schleife erkannt

der eine String enhält den chr(10) der andere nicht

damit kommt es wenn das Zeichen vorhanden ist zu der Situation
das

Code: Alles auswählen

while  otcursor.string <> oviewcursor.string
immer zutrift !
und dann gibt's halt keine ende

nur habe ich leider noch überhaupt keinen Schimmer wie diese Textcusor reagieren und wie man das abstellen könnte
eine Möglichkeit wäre wohl direkt nach chr(10) abzufragen aber wie ?

Re: automatischen Umbruch im Text finden

von Karolus » Do, 19.08.2010 14:10

Hallo

Zum Dank soll ich mir auch noch die Augen verderben 8) - ich hab leider dafür gerade keine Lösung parat, und auch keine Zeit danach zu suchen, ich muss mal ein paar Brötchen verdienen gehen.

Gruß Karo

Nach oben