Gelöst: Teilbereiche in Formularfeldern unterstreichen

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: Gelöst: Teilbereiche in Formularfeldern unterstreichen

Re: Teilbereiche in Formularfeldern unterstreichen oder einf

von RobertG » So, 16.03.2014 08:56

Hallo Rik, *

ich habe den Haken gefunden. Das Ganze geht in Base-Formularen nicht mit einfachen Feldern sondern nur mit Feldern des Typs "mehrzeilig mit Formatierungen". Dann erhalte ich die rot geschlängelte Linie an der korrekten Position. Nur kann ich mich jetzt nicht mehr einfach mit dem Tabulator aus einem Feld herausbewegen. Aber das ist wohl ein anderes Problem.

Für Interessierte: Ich habe die Base-Datei mit der funktionierenden Rechtschreibüberprüfung hier angehängt:
viewtopic.php?f=8&t=63563#p243089

Gruß

Robert

Re: Teilbereiche in Formularfeldern unterstreichen oder einf

von F3K Total » Sa, 15.03.2014 21:49

Hallo Robert,
mit diesem Code kommt zumindest mal die "Welle"

Code: Alles auswählen

Sub Wave
    ocell = thiscomponent.sheets.Tabelle1.getcellbyposition(3,0)
    ocell.string = "Dies ist kein falscher Satz"
    oTextCursor = oCell.createTextCursor
    oTextCursor.collapseToStart
    oTextCursor.goRight(8,true)
    oTextCursor.CharUnderline = 9
    oTextCursor.CharUnderlineHasColor = True
    oTextCursor.CharUnderlineColor = RGB(255,51,51)
    oTextCursor.goRight(1,false)
    oTextCursor.goRight(13,true)
    oTextCursor.CharUnderline = 9
    oTextCursor.CharUnderlineHasColor = True
    oTextCursor.CharUnderlineColor = RGB(0,0,255)
end sub
Gruß Rik

Re: Teilbereiche in Formularfeldern unterstreichen oder einf

von RobertG » Sa, 15.03.2014 21:48

Hallo *,

ich habe gemerkt, dass ich von den Cursor-Geschichten noch zu wenig Ahnung habe. In Calc klappt das jetzt mit der Linie unter falsch geschriebenen Worten, wenn ich unterschiedliche Curorzugriffe benutze. Jetzt werde ich einmal sehen, wie ich das doch auf Base übertragen bekomme.

Beispiel für Calc im Anhang - hat noch einen Schönheitsfehler (Strich um Leertaste zu lang), aber das werde ich in Base wohl in den Griff bekommen, wenn ich denn erst einmal die Schlängellinie drin habe.

Gruß

Robert
Dateianhänge
CalcMakrotest.ods
Rechtschreibungstest in Calc - jetzt funktionierend
(12.75 KiB) 51-mal heruntergeladen

Re: Teilbereiche in Formularfeldern unterstreichen oder einf

von RobertG » Sa, 15.03.2014 21:03

Hallo *,

ich habe das jetzt einmal versucht auf Calc-Zellen zu übertragen. Dort ist es ja offensichtlich möglich, Teile separat zu formatieren. Über Makros bekomme ich auch hier die entsprechende Formatierung nicht geregelt. Irgendwo muss in dem Zugriff, den ich dort nehmen will, noch prinzipiell etwas falsch sein.
Ich hänge einmal das Calc-Beispiel an.

Gruß

Robert
Dateianhänge
CalcMakrotest.ods
Testdatei Calc zum Formatieren von Zellteilen abhängig von der Rechtschreibung
(12.75 KiB) 48-mal heruntergeladen

Re: Teilbereiche in Formularfeldern unterstreichen oder einf

von RobertG » Fr, 14.03.2014 14:51

Hallo balu,

xray nutze ich hier auch. Ich habe auch die entsprechenden Eigenschaften für oFeld.Model dort stehen und vorher schon

Code: Alles auswählen

oFeld.Model.CharUnderline = com.sun.star.awt.FontUnderline.WAVE
versucht. Irgendwie tut sich da leider auch mit

Code: Alles auswählen

oFeld.Model.CharUnderline = 18
nichts. Ich bin eigentlich davon ausgegangen, dass ich die Eigenschaften mit dem TextCursor einfügen und beim nächsten Wort wieder aufheben kann. Das ist mir erst einmal nicht geglückt. Das ganze Formularfeld konnte ich mit einer Wellenlinie versehen - aber das bringt mir natürlich nichts. Auch habe ich einen Bereich markiert und dann versucht, über das obige Verfahren etwas zuzuweisen - klappt auch nicht.
Ich werde noch einmal ein bisschen testen und dann eine Beispieldatei mit den Versuchen hier online stellen.

Nachtrag: Im Datenbankanhang sind alle Versuche, die ich unternommen habe, als Kommentare sichtbar. Es handelt sich um das Makro SUB MarkierenFehlerhafterWorteWellenlinie

Gruß

Robert
Dateianhänge
Beispiel_Autotext.odb
Datenbankdatei mit einem Formular, unterstes Feld mit Rechtschreibung
(13.71 KiB) 52-mal heruntergeladen

Re: Teilbereiche in Formularfeldern unterstreichen oder einf

von balu » Do, 13.03.2014 23:39

Hallo Robert,

kennst Du XRAY oder MRI? Wenn nicht, dann bitte unbedingt besorgen. Denn damit kann man alles mögliche Untersuchen, seis eine Zelle in Calc, oder ein Textfeld in einem Dialog. Ja ich weiß das Du von Formularen sprichst, aber damit habe ich wenig Erfahrung und außerdem war das eben ja nur als Beispiel genannt.

Nun zu deinem Problem.
Du bist eigentlich wohl schon auf dem richtigen Weg, jedoch fehlt dir noch etwas, und das wäre wohl höchstwahrscheinlich das hier:

Code: Alles auswählen

oFeld.Model.CharUnderline = 18
Da ich in einer Calc-Zelle eine Fette Wellenlinie gesetzt und diese dann mit XRAY Untersucht habe, kann ich dir nicht versprechen ob das auch in deinem Formcontrol zur Verfügung steht. Denn nicht alle Eigenschaften wie z.B. in einer Calc-Zelle, stehen auch in anderen Grafischen Elementen zur Verfügung. Das musst Du also mit den eben genannten Tools mal eben selber Untersuchen. Und wenn Du nix von CharUnderline siehst, dann gibts das dort auch nicht.

Ich hoffe ich konnte dir etwas weiterhelfen.



Gruß
balu

Gelöst: Teilbereiche in Formularfeldern unterstreichen

von RobertG » Do, 13.03.2014 21:26

Hallo *,

ich versuche gerade, auch Formularfelder in Base mit einer Rechtschreibkontrolle zu versorgen. Das Prinzip klappt dank vieler Quellen in diesem oder anderen Foren schon. Nur gelingt es mir einfach nicht, Teile eines Formularfeldes gesondert zu formatieren. Ich sehe im Model des Formcontrols, dass es dort so etwas gibt wie

Code: Alles auswählen

oFeld.Model.CharUnderlineHasColor = True
oFeld.Model.CharUnderlineColor = RGB(255,51,51)
Irgendwie schaffe ich es nicht, diese roten Wellenlinien zu erzeugen, die z.B. in diesem Kontrollfeld bei der Eingabe zu sehen sind, wenn eben die Ausdrücke nicht zu meiner Sprachregion passen.

Das ganze Formularfeld kann ich problemlos mit einer Wellenlinie versorgen - auch wenn diese nicht rot, sondern schwarz erscheint. Aber auch so eine schwarze Teillinie bekomme ich einfach nicht hin. Stattdessen werden zur Zeit alle Worte, die nach dem vorhandenen Wörterbuch nicht gedeutet werden können, mit einem führenden Fragezeichen versehen - für ein Datenbankformular natürlich nur bedingt tauglich, da ja diese Fragezeichen auch mit abgespeichert würden.

Gibt es diese Möglichkeit des teilweisen Formatierens überhaupt bei Formularfeldern? Eine Markierung bekomme ich ja hin dank des Beitrages von Rik (viewtopic.php?f=18&t=63572), aber auch damit komme ich partout nicht weiter.

Gruß

Robert

Nach oben