Wie lasse ich einen Dialog die Zeilennummer anzeigen und dynamisch updaten?

Hi!
Ich bin gerade dabei einen Dialog für eine Kollegin zu basteln, dieser mus aufgrund einer Positionsnummernangabe die Zeilennummer in einem Label innerhalb besagten Dialogs angeben und bei einem Sprung in einer andere Zeile mit geupdated werden. Leider klappt das nicht so recht, wie ich mir das denke (man muss dazu sagen, ich bin ein Neuling was Makro-Programmierung angeht)

GLOBAL z as integer

sub nummer
rem ----------------------------------------------------------------------
rem z ist als GLOBAL | int definiert
rem ----------------------------------------------------------------------

DialogLibraries.LoadLibrary( "Standard" )
DialogLibraries.Standard.getbyname("Label2")
oLabel2 = HannasDialog.getControl("Label2")
oLabel2.label = z + 1

end sub 

Das z ist erstmal lediglich ein Platzhalter, der gesamte Code ist deutlich länger und eine Abfrage für die Positionsnummer habe ich bereits auf einer anderen Variable definiert, ich kriege nur das Label nicht dazu, die Zahl anzuzeigen.

Ich nutze LibreOffice 5.0.3.2 auf einem Win10x64

Danke schonmal im voraus!

Hallo Dyam,

na ja… allzu viel ist das ja noch nicht;)

Ich müsste schon mehr vom Code (Dialog) sehen;)

Bis jetzt sehe ich nur: Der Dialog wird geladen (Hauptspeicher).

ok, ich gehe mal davon aus, dass Du den Dialog beherrschst, ihn visible die ganze Zeit vor dem Dokument belässt und nur die Zahl entsprechend ändern willst.

Falls Du ein Beschriftungsfeld verwendet hast (sieht so aus - “label12” - der automatische Bezeichner…) kannst Du den Inhalt wie folgt lesen/setzen:

HannasDialog.getControl("Label12").text = z

Eine “Label-Eigenschaft” gibt es nicht. Der Inhalt eines Beschriftungsfeldes wird mit text gesetzt oder gelesen!
Besser noch, Du verwendest die Model-Eigenschaften… aber da sind wir wohl schon einen Schritt weiter :slight_smile:

VG Tom

Hi Toxitom! Danke für deine Hilfe, leider funktioniert das noch nicht, wie es soll. LO gibt mir jetzt den Fehler aus, dass .getControl() nicht bekannt ist. [Ich habe den Code jetzt in ein anderes Makro geschoben, da er sich dort aufgrund der logischen Aufteilung besser macht, keine Ahnung ob das was ändert. Das komplette Makro kann ich dir gern als Datei zusenden, leider kann ich das nicht als Datei anhängen, da ich nicht genug Karma besitze…]

So sieht der Code jetzt aus:

DialogLibraries.LoadLibrary( "Standard" )
oAbfahrt = DialogLibraries.Standard.getbyname("Abfahrt")
oAbfahrt.getcontrol("label2").Text = i