Name eines Textfeldes

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

Moderator: Moderatoren

Ramses
**
Beiträge: 21
Registriert: Fr, 16.07.2004 09:20

Name eines Textfeldes

Beitrag von Ramses »

Hallo Leute

ich habe ein Problem. :(

Ich habe hier ein Dialog vor mir. Da sind einige Felder, die bei Fokuserhalt eine Procedure ausführen müssen. Soweit ist auch alles okay.
Mein Probl. ist aber, dass es viele Felder sind, die alle ein und das selbe machen müssen (jeweils auf das aktuelle Feld abgestimmt)

Dafür muss ich aber meinem Progr. mitteilen, welches Feld gerade den Fokus hat bzw. wie dieses Feld heißt.

Ich habe nun alles versucht, hab aber scheinbar ein Brett vor'm Kopf :)

Hat jemand einen Vorschlag?

Danke

Ramses
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Da sind einige Felder, die bei Fokuserhalt eine Procedure ausführen müssen.

Schreibst Du Deine Anweisungen als Function:

Function TuWas (Feld As String)
...
End Function


und übergibst in dem Makro was dem Ereignis Fokuserhalt des jeweiligen Feldes zugeordnet ist den Namen:

Sub BeiFokuserhalt
Ergebnis = Tuwas (Name des Feldes)
...
End Sub



Gruß
Stephan
Ramses
**
Beiträge: 21
Registriert: Fr, 16.07.2004 09:20

Beitrag von Ramses »

Hallo Stephan

Genau das will ich ja vermeiden.
Den Ansatz mit der Funktion bzw. der Procedure,die dann die Funktion aufruft habe ich auch so realisiert.
Es sieht aber einfach nicht so "schön" aus. :)
Zumal ich dann ja für jedes Feld, eine eigene Procedure schreiben muss, die für sich dann die Funktion aufruft. (Ist dann wohl nicht gerade das, was man Redundanzfrei nennen würde)

Daher dachte ich an eine Möglichkeit, eine Procedure zu schreiben, die alle Felder aufrufen können (bei Fokuserhalt).
Erst in dieser Procedure wird der Name des aktiven Feldes ermittelt...

Code: Alles auswählen

Dim oDlg as Object      'Dialog - Globale Variable

Sub Feld

Dim aFelderGesamt()

aFelderGesamt() = oDlg.getElementNames       'Damit bekomme ich alle Felder im Dialog

End Sub
Das bedeutet doch aber auch, dass man mit einer bestimmten Methode auch das aktive Feld ansprechen kann, oder? Und genau da muss ich passen :(

Dennoch danke

Ramses
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Hallo Ramses,

ja - jetzt verstehe ich. Du willst also das das startet ohne das Du für alle relevanten Felder für das Ereignis 'Fokus' ein Makro zuordnen mußt.
Das geht mit einem Listener. Es gibt im OpenOffice Developerskit eine Beispieldatei wo dieses Vorgehen für Optionsfelder erläutert ist. Die Informationen in dieser Datei sollten sich auch für Dein Problem verwenden lassen. Genau kann ich das jetzt noch nicht sagen, aber ich glaube schon.

Willst Du nicht das ganze Developerskit herunterladen, hinterlaß mir Deine Email-Adresse indem Du mir hier über das Forum eine Email schickst, ich suche dann die Datei heraus und schicke sie Dir.

Gruß
Stephan
Ramses
**
Beiträge: 21
Registriert: Fr, 16.07.2004 09:20

Beitrag von Ramses »

Danke an Stephan

funktioniert jetzt genauso wie ich es mir vorgestellt habe :)

Gruß
Ramses
Antworten