Re: Dynamische Textfeld-Größenanpassung
Verfasst: Sa, 12.10.2013 15:44
Man...... so ein Mist. DAS muß man erstmal wissen!
Herzlichen Dank und viele liebe Grüße,
Marcel

Herzlichen Dank und viele liebe Grüße,
Marcel
deutsches Forum rund um Apache OpenOffice und LibreOffice
http://de.openoffice.info/
Code: Alles auswählen
Option Explicit
Code: Alles auswählen
REM **********Textfeld erzeugen
oMod = odlgModel.createInstance("com.sun.star.awt.UnoControlEditModel")
With oMod
.setPropertyValue("Name", "Test")
.setPropertyValue("PositionX", 10)
.setPropertyValue("PositionY", 10)
.setPropertyValue("Height", 180)
.setPropertyValue("Width", 130)
.setPropertyValue("MultiLine", true)
.setPropertyValue("Text","konnte ich nicht glauben")
.setPropertyValue("Border", 0)
End With
odlgModel.insertByName("Test", oMod)
odlg.setModel(odlgModel)
Code: Alles auswählen
'Diese Routinen werden von dem XTopWindowListener benötigt
Sub Top_Win_windowClosing( oEvent ) 'Dialog schließen
odlg.setVisible(False)
End Sub
Code: Alles auswählen
Sub S_Create_Dialog
Dim oWindow As Object
Dim oMod As Object
Dim i As Integer
If not isNull (odlg) then
if odlg.isVisible() Then
odlg.setVisible(False)
odlg.dispose
end if
end if
Code: Alles auswählen
Global odlg as object
Code: Alles auswählen
If not isNull (odlg) then
if odlg.isVisible() Then
odlg.setVisible(False)
odlg.dispose
end if
end if
Code: Alles auswählen
If not isNull (odlg)
... hat sich jetzt auch erledigt.Die Sache mit der Abfrage ...
Benenn die Variable odlg in der neu angelegten Bibliothek mal in etwas "eindeutiges" um (odlg123) und versuch es nochmal.balu hat geschrieben:Ich hatte nämlich eine weitere Bibliothek angelegt und das Makro dort in ein Modul reinkopiert. Es ist also nicht die Standardbibliothek von wo das Makro aus aufgerufen wird. Und als ich das Makro in die Standardbibliothek kopierte und von dort ausführte, funktioniert es auch bei mir.
Benenn die Variable odlg in der neu angelegten Bibliothek mal in etwas "eindeutiges" um (odlg123) und versuch es nochmal.
Du hast gut Lachen. Du hast da ein viel größeres Wissen in dieser Hinsicht. Aber meiner einer steht da doch ziemlich dumm da, und wundert sich nur. Ich hatte aber auch sicherheitshalber ja gesagt das ich es nur vermute, und nicht behaupte das es so ist. Na ja. Wieder viel dazu gelernt. Danke schön.Dass etwas mit dem XTopWindowListener "nicht bestimmt" oder dass der Ort des Quellcodes (Bibliothek) grundsätzlich die Funktionalität des Codes beeinträchtigt, wage ich einfach mal sehr stark zu bezweifeln
Dieses Ergebnis lässt eigentlich nur eine Schlussfolgerung zu: irgendwo zwischen dem Starten des Dialogs und dem Schliessen verwendest Du offenbar die Variable odlg erneut (bzw: es reicht prinzipiell, dass sie einfach nur woanders nochmal deklariert wird). Aus diesem Grund steht die Variable in odlg.setVisible(False) nicht mehr zur Verfügung.balu hat geschrieben:Du hast einfach Recht. Mit oHptDialog funktioniert es auch in der zusätzlichen Bibliothek. Danke für diesen Tipp.
Bedenke bitte eins: Das Makro hatte nicht ich erstellt, sondern F3K Total. Schaus dir an, es ist in diesem Thread hier zu finden. Also solltest Du deine Worte mehr an ihn wenden, und nicht so sehr an mich. Aber ich finde momentan in seinem Code keine Stelle wo die Variable odlg weder mehrfach deklariert noch mehfach defeniert wird.Dieses Ergebnis lässt eigentlich nur eine Schlussfolgerung zu:...
Ich für meinen Teil habe es mir schon angewöhnt etwas aussagefähigere Namen für z.B. Dialoge einfallen zu lassen. Wie z.B. oALARM oder oFarbDialog. Es kann aber auch mal so etwas dabei rauskommen: oNoVeri.Daher: gerade bei globalen Variablen unbedingt darauf achten, dass sie eindeutig sind, anstatt generische Namen wie odlg zu verwenden.