Per Methode baue ich im Open-Events des Fenster die Toolbar auf.
Die Buttons gibt es als Properties und sie sind alle Toggle-Buttons.
Funktioniert auch alles prima.
Ich bekomme es nur nicht hin, einen bestimmten Button per Code als
geklickt (Pressed) zu selektieren. Egal wo ich den Befehl setze, der Button
ist immer NIL.
Aufbau der Toolbar, die pToolbar… sind die Parameter die ich in die Methode übergebe:
if pToolbarButton is NIL then
pToolbarButton = new ToolbarButton
pToolbarButton.Caption = pButtonName
pToolbarButton.Tag = pButtonTag
pToolbarButton.Icon = pIcon
pToolbarButton.Enabled = pEnabled
pToolbarButton.ButtonStyle = ToolbarButton.ButtonStyles.ToggleButton
pToolBar.AddButton (pToolbarButton)
end if
Das klappt auch, die Toolbar wird angezeigt und funktioniert auch einwandfrei
Jetzt will ich aber einen Button als “Pressed” setzen und da hängt es.
Im Fenster habe ich Properties wie tbbDatabase as ToolBarButton.
Egal von ich tbbDatabase.Pressed = True setze, das Property ist immer NIL.
In meinen Projekten schreibe ich noch den Namen der Toolbar davor, und das sogar innerhalb der Toolbar selbst, da es sonst zu der beschriebenen Fehlermeldung kommt:
NameDerToolbar.pToolbarButton.Pressed=true
OK, erst mal danke für eure Hilfe.
Ich bin jetzt etwas weiter, auch wenn es nicht zufriedenstellend ist.
Setze ich diesen Code direkt in den Open-Event des Fenster, wird die Toolbar einwandfrei aufgebaut und der ToolbarButton ist nicht NIL:
If tbbDatabase Is Nil Then
tbbDatabase = New ToolbarButton
tbbDatabase.Caption = “Add”
tbbDatabase.Icon = data32
tbbDatabase.ButtonStyle = ToolbarButton.ButtonStyles.ToggleButton
tbWinSettingsHandler.AddButton(tbbDatabase)
End If
Setze ich jetzt den exakt gleichen Code in eine Methode und rufe diese aus dem Open-Event auf, wird die Toolbar ebenfalls aufgebaut, allerdings sind die Buttons dann NIL.
OK, das Problem konnte ich lösen.
Ich habe das Fenster gelöscht und komplett neu aufgebaut, dann hat es so funktioniert wie erwartet.
Die Methoden habe ich 1zu1 kopiert. Keine Ahnung was da passiert ist.
Noch mal danke für die Hilfe!