gelöst: Textfeld in Dialog ändern

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

gelöst: Textfeld in Dialog ändern

Beitrag 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
Zuletzt geändert von erikafuchs am Mo, 21.10.2013 23:51, insgesamt 1-mal geändert.
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Textfeld in Dialog ändern

Beitrag 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
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Textfeld in Dialog ändern

Beitrag 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
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Textfeld in Dialog ändern

Beitrag 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
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Textfeld in Dialog ändern

Beitrag 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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Textfeld in Dialog ändern

Beitrag 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?

Code: Alles auswählen

          oControl.PositionY=35
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
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Textfeld in Dialog ändern

Beitrag 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
Dateianhänge
Dialog.ods
(10.57 KiB) 93-mal heruntergeladen
F3K Total
********
Beiträge: 3724
Registriert: Mo, 28.02.2011 17:49

Re: Textfeld in Dialog ändern

Beitrag 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
Dateianhänge
Dialog.ods
(10.91 KiB) 110-mal heruntergeladen
erikafuchs
******
Beiträge: 690
Registriert: Di, 13.02.2007 17:38
Wohnort: Büttelborn

Re: Textfeld in Dialog ändern

Beitrag 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
Antworten