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
Name eines Textfeldes
Moderator: Moderatoren
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
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
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...
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
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
Dennoch danke
Ramses
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
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