Seite 1 von 1
gelöst: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 17:24
von erikafuchs
Hallo ihr Lieben - ich bräuchte wieder aml Hilfe:
ich möchte in einem Dialog ("oDialog") bestehende Textfelder ändern und eine Begrenzungslinie hinzufügen.
Das Textfeld "Aufgabe" soll nach oben verschoben werden und die Textausrichtung soll mittig sein.
Das Textfeld "Anmerkung" soll auch nach oben verschoben werden, mit Textausrichtung mittig. Hier soll auch die Breite des Feldes und die Schriftgröße geändert werden.
Außerdem soll zwischen den beiden Feldern eine horizontale Linie eingefügt werden.
Ich habe schon mal rumprobiert und bekomme es nicht hin. In dem folgenden Text stimmt wahrscheinlich kaum was:
Code: Alles auswählen
dim oLinie as object
oControl=oDialog.getControl("Aufgabe").getModel()
oControl.verticalAlign=0
oControl.PositionY=35
oControl=oDialog.getControl("Anmerkung").getModel()
oControl.verticalAlign=0
oControl.PositionY=40
oLinie=oDoc.createInstance("com.sun.star.awt.UnoControlFixedLineModel")
with oLinie
' .orientation=0
end with
oDialog.addControl("oLinie",oDialog)
Kann mir da bitte jemand helfen?
Grüße von
Pit
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 17:30
von F3K Total
Hallo Pit,
mit dem Fragment kann man ohne den dazugehörigen Dialog wenig anfangen.
Du schreibst hier doch nicht zu ersten Mal. Warum stellst du keine Beispieldatei zur Verfügung?
Gruß R
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 18:35
von erikafuchs
Ich schreibe zwar oft hier, habe aber immer wieder dumme Fragen:
Wie stelle ich einen Dialog hier ein? Kann man den komplett kopieren?
Meine ganze Datei ist 346k groß und das wäre richtig Arbeit sie zu zerpflücken. Ich dachte die Befehle zum Ändern der Positionen von Textfeldern usw. sind universell (wenn das was ich vorhabe überhaupt geht).
Pit
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 18:48
von F3K Total
Hallo Pit,
natürlich, geht alles. Die Frage, die sich stellt, warum willst das machen?
Wieso Felder verschieben, Ausrichtung ändern und Linien einfügen?
Kannst Du die Felder nicht vorher richtig einstellen?
Die Linie brauchst Du auch nicht einzufügen, es reicht, sie je nach Notwendigkeit sichtbar/unsichtbar zu schalten, oder?
Und: Du kannst in der IDE (Makro Umgebung) Verwalten ... -> Reiter Dialoge, deine Dialoge mit gedrückter STRG Taste in eine leere Datei kopieren, wenn Du in dieser vorher ein Makro-Modul angelegt hast.
Gruß R
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 18:56
von balu
Hallo Pit,
Wie stelle ich einen Dialog hier ein?
In der IDE für den Dialog gibt es wohl in der Symbolleiste ein Symbol für "Export Dialog", die dann gespeicherte Datei würde uns hier aber nicht weiterhelfen. Deshalb mach das anders, und zwar wie folgt.
Mach eine ganz einfache simple Beispieldatei die folgendes beinhaltet:
- einen Dialog der mindestens die angesprochenen Elemente beinhaltet
- einen Makro-Code der sich nur auf diese Elemente bezieht, und der gleichzeitig zeigt wie weit Du bist.
Gruß
balu
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 19:19
von balu
Ich noch mal.
In dem folgenden Text stimmt wahrscheinlich kaum was
Du meinst wohl Code, statt Text, das müsstest Du aber mittlerweile wissen
Code: Alles auswählen
oControl=oDialog.getControl("Aufgabe").getModel()
oControl.verticalAlign=0
Du arbeitest doch bestimmt mit xray, oder mit mri? Richtig!?
Dann müsstest Du doch sehen und wissen das ein TextField unter .Model keine
verticalAlign hat. Also was willst Du damit bezwecken?
Tja, mein lieber, das mit der Position ist so eine Sache für sich. Denn es gibt nämlich 2, in Worten Zwei Möglichkeiten die Position festzulegen. Einmal über das Controll, da lautet es dann aber
PosSize, welches dann aber ein Struct ist. Und dann noch über das Model, welches Du ja selber gefunden hast.
Und das Dumme daran ist, das die eben genannten Positionmöglichkeiten unterschiedliche Positionswerte liefern und unterschiedlich positionieren. Das musst Du berücksichtigen, falls Du das nicht selber schon festgestellt hast.
Warum die genannten Methoden unterschiedliche Ergebnisse liefern, dass weiß ich jetzt nicht.
Code: Alles auswählen
oLinie=oDoc.createInstance("com.sun.star.awt.UnoControlFixedLineModel")
Fehler!
Mit
oDoc greifst Du bestimmt auf ein Tabellenblatt drauf zu. Und von daher dürfte es an dieser Stelle fehl am Platze sein.
Gruß
balu
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 19:44
von erikafuchs
Hallo Balu,
vielen Dank - wieder was gelernt!
Lieber R,
Balu kennt mein Programm - (wer es kennt, kann wahrscheinlich nicht mehr ruhig schlafen!). Das Programm fragt jede Menge Matheaufgaben ab und für ein klitzekleines Untermenü muss es zum Thema Potenzrechnung Brüche mit negativen Exponenten darstellen. Dazu (und das kommt nur ganz selten vor) hätte ich gerne den Dialog etwas umgestellt, sodass ich einen Bruch vor dem Gleichheitszeichen erzeugen kann - schaut es euch an:
Gruß Pit
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 21:28
von F3K Total
Hallo Pit,
füge dem Dialog irgendwo eine horizontale Line zu und gebe ihr den Namen
Bruchstrich.
Stelle ihre Eigenschaft
Sichtbar auf
Nein.
Dann sollte dieses Makro funktionieren:
Code: Alles auswählen
Sub Bruch
DialogLibraries.loadLibrary("Standard")
oDialog = CreateUnoDialog(DialogLibraries.Standard.RechnenDialog)
olblAufgabe = oDialog.getControl("Aufgabe").Model
olblAufgabe.verticalAlign = 1
olblAufgabe.Align = 1
olblAufgabe.PositionY = 31
olblAnmerkung=oDialog.getControl("Anmerkung").Model
olblAnmerkung.verticalAlign = 1
olblAnmerkung.Align = 1
olblAnmerkung.PositionY = 49
olblAnmerkung.Width = olblAufgabe.Width
olblAnmerkung.FontHeight = olblAufgabe.FontHeight
oBruchstrich = oDialog.getControl("Bruchstrich").Model
oBruchstrich.EnableVisible = true
oBruchstrich.Width = olblAufgabe.width
oBruchstrich.Height = 1
oBruchstrich.PositionX = olblAufgabe.PositionX
oBruchstrich.PositionY = 47
oDialog.execute
End Sub
Gruß R
Re: Textfeld in Dialog ändern
Verfasst: Mo, 21.10.2013 23:49
von erikafuchs
Lieber R,
vielen Dank - gewusst wie!
Das mit der Änderung der Schriftgröße von "Änderung" ist ja genial!
Zur Zeit sitze ich in Spanien, in etwa einer Woche kannst du das Ergebnis auf unserer Homepage "
www.IGS-Kelsterbach.de" unter Downloads im "Rechentrainer" auf der Seite Jg.9_10 unter "Potenzen" mit der Option "mit negativen Exponenten" finden.
Herzlichen Dank!
Pit