Schleife über Steuerelemente in Dialog

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

Moderator: Moderatoren

Cosmo
Beiträge: 8
Registriert: Di, 09.11.2010 14:23

Schleife über Steuerelemente in Dialog

Beitrag von Cosmo »

Hi,

ich versuche eine Schleife über bestimmte Textfelder (Pflichtfelder) meines Dialogs laufen zu lassen, allerdings funktioniert das nicht so, wie ich mir das vorgestellt habe.

Meine bisheriger Versuch war, über eine For Each-Schleife und der Zusatzinformation(eng: Tag) die Controls anzusprechen. Dazu habe ich den Pflichtfelder das Tag "x" zugewiesen. Klar, ich könnte es über eine ganz normale If-Abfrage machen, aber dies erscheint mir nicht der richtige Ansatz und mehrere If-Statements möchte ich nicht unbedingt verwenden.

In VBA würde der Code wie folgt aussehen:

Code: Alles auswählen

For Each ctl In Me.Controls
        If ctl.Tag = "x" Then
            If Len(Trim(ctl.Text)) = 0 Then
                MsgBox "Bitte füllen Sie das Feld " & ctl.Name & " aus!"
                ctl.SetFocus
                Exit Sub
            End If
        End If
    Next ctl
In OO-Basic habe ich es wie folgt versucht, läuft aber nicht:

Code: Alles auswählen

For Each ctl In objDlg.Controls 
      If ctl.Tag = "x" Then
            If Len(Trim(ctl.Text)) = 0 Then
                 MsgBox "Bitte füllen Sie das Feld " + ctl.Name + " aus!" 
                 ctl.SetFocus
                 Exit For
            End If
      End If
Next ctl
Wie muss das korrekte For Each In.... heissen und wie genau kann ich die Tag-Eigenschaft des Textfelds ansprechen?

Viele Grüße,
Cosmo
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Schleife über Steuerelemente in Dialog

Beitrag von DPunch »

Servus

Unter der Prämisse, dass Du es nur mit Textfeldern zu tun hast:

ctl.Model.Tag
ctl.Model.Name

Zwei kurze Anmerkungen noch:
  • besorge Dir Xray, dann kannst Du derlei Probleme innerhalb kürzester Zeit auch selber problemlos beheben
  • eine Beschreibung ala "läuft aber nicht" hilft niemandem weiter - wenn es laufen würde, würdest Du wohl kaum die Frage stellen. Passiert gar nichts? Bekommst Du eine Fehlermeldung? Wenn ja, welche?
Cosmo
Beiträge: 8
Registriert: Di, 09.11.2010 14:23

Re: Schleife über Steuerelemente in Dialog

Beitrag von Cosmo »

Salve!

ctl.Model.Tag und ctl.Model.Name passt! Danke! :D

Ich wollte eigentlich auch gar keinen Thread erstellen, da mir das Problem zu trivial erschien, aber die Suche hier im Forum hat mir nicht weiter geholfen und ich war schon langsam am verzweifeln.

Nein, der Code hat keine Fehlermeldung verursacht, dass war ja das dubiose, hätte ich erwähnen sollen.

XRay werde ich mir anschauen, merci für den Tip.

Wünsche dir ein schönes WE!
Antworten