benutzerdefinierte Schaltfläche

SupportCommunity Automation and VBA benutzerdefinierte Schaltfläche

Ansicht von 13 Beiträgen - 1 bis 13 (von insgesamt 13)
  • Autor
    Beiträge
  • #12395

    Hallo,

    Für meinen benutzerdefinierten Export-Filter habe ich eine benutzerdefinierte Schaltfläche erstellt und dieser eine Export-Makro zugeordet. Wie soll ich vorgehen, damit auch diese benutzerdefinierte Schaltfläche ( evtl. inklusive entsprechender Zuordung zu Makro ) auch in einem neuen System zu sehen ist? Einfach die Template.FPT in den neuen System zu kopieren reicht leider nicht. Was ist mit den Verweisen im VBA-Editor, werden sie auch mitkopiert?

    Danke

    #8078

    Hallo,

    Für meinen benutzerdefinierten Export-Filter habe ich eine benutzerdefinierte Schaltfläche erstellt und dieser eine Export-Makro zugeordet. Wie soll ich vorgehen, damit auch diese benutzerdefinierte Schaltfläche ( evtl. inklusive entsprechender Zuordung zu Makro ) auch in einem neuen System zu sehen ist? Einfach die Template.FPT in den neuen System zu kopieren reicht leider nicht. Was ist mit den Verweisen im VBA-Editor, werden sie auch mitkopiert?

    Danke

    #8613
    Bernhard KantzBernhard Kantz
    Moderator

    The user-defined menu bars and command bars are saved in the user profile. The references are saved in the local, global template database or in the FlexPro database.

    In VBA you can add a new command bar. See fpuiob7.chm. You could call this macro if you open a FlexPro database. For this you can use the auto macro AutoOpen or AutoExec.

    Moreover you can add the references using VBE.

    support@weisang.com

    #8614

    Beim Kopieren des UserProfiles werden alle Einstellungen übertragen, ich möchte aber, dass nur die beiden Imp- und Export-Buttons beim neuen Anwender sichtbar werden.

    Also in VBA konnte ich eine Symbolleiste mit zwei Buttons (Imp-/Export) hinzufügen und diese mithilfe der OnAction()-Eigenschaft mit selbsterstellten Makros verbinden. Für diese zwei Buttons habe zwei icons slebst erstellt. Ich weiss aber nich, wie ich diese icons programmatisch setze.. geht das? Auch beim Kopieren des UserProfiles werden diese Icons nicht mitkopiert; im neuen System sehe ich also nur zwei leere Buttons.

    Hoffe Sie vertehen was ich meine..
    Danke

    #8615

    Ich habe gerade das Picture-Eigenschaft Beispiel gefunden und denke das ist das was ich brauche.

    Ich habe es probiert aber irgendwie bekomme ich wieder nur ein Leeres CommandBar, sonst nichts. Also weiss nicht warum folgendes Code nicht funktioniert

    
        ' Benutzerdefinierte sdf Im- und Export Schaltflächen
       Dim aCmdBar As CommandBar
       Set aCmdBar = CommandBars.Add(Name:="Imp-Exp-CommandBar", _
                                    Position:=fpBarPositionTop, Temporary:=True)
       aCmdBar.Visible = True
    
       '------------------------------------------------------------
       Dim ExpBtn As CommandBarControl
       Set ExpBtn = aCmdBar.Controls.Add(Type:=fpControlTypeButton, _
                            Id:="exportButton")
       ExpBtn.OnAction = "PersonalTemplateDatabase!ExportMakro"
       
       Dim ImpBtn As CommandBarControl
       Set ImpBtn = aCmdBar.Controls.Add(Type:=fpControlTypeButton, _
                            Id:="importButton")
       ImpBtn.OnAction = "PersonalTemplateDatabase!ImportMakro"
       
    
    
        Dim picExp As IPictureDisp
        Dim picImp As IPictureDisp
    
        Set picExp = stdole.StdFunctions.LoadPicture("C:\Pics\icon-export.bmp")
        Set picImp = stdole.StdFunctions.LoadPicture("C:\Pics\icon-import.bmp")
    
        CommandBars.FindControl(Type:=fpControlTypeButton, Id:="exportButton").Picture = picExp
    
        CommandBars.FindControl(Type:=fpControlTypeButton, Id:="importButton").Picture = picImp
    
    #8616
    Bernhard KantzBernhard Kantz
    Moderator

    The user-defined pictures are saved in the file “UserImages.bmp”.

    You can create a CommandBarButton with a picture in VBA:

    
       Dim aCmdBar As CommandBar
       Set aCmdBar = CommandBars.Add(Name:="Test", Position:=fpBarPositionTop, Temporary:=True)
       aCmdBar.Visible = True
    
       Dim ImpBtn As CommandBarControl
       Set ImpBtn = aCmdBar.Controls.Add(Type:=fpControlTypeButton)
    
       Dim picImp As IPictureDisp
       Set picExp = stdole.StdFunctions.LoadPicture("c:\temp\userimage.bmp")
       ImpBtn.Picture = picExp
    

    support@weisang.com

    #8617

    Hallo,

    Ich hätte noch zwei Fragen.

    1. In einer Makro füge ich eine CommandBar hinzu. Darin erstelle ich zwei selbstdefinierte Buttons mit eigenen Bilder (.Picture). Die Makro rufe ich über einen Script (VBscript). Alles läuft gut, ich kann meine Buttons sehen und die Bilder auch. Sobald aber ich den Maus über den Buttons bewege verschwinden die eigenen Bilder und tauchen stattdessen Standard-Bilder aus den userImages.

    2. Wie kann ich meine zwei Button aktivieren/deaktivieren abhängig davon, ob schon eine Datenbank offen ist.

    Danke im vorraus

    #8618

    Also ich weiss immer noch nicht, wie ich meine Icons in den neuen Buttons bekomme.
    Ich habe bemerkt, dass folgendes Code immer den ersten Icon in userImages.bmp durch meinen Icon ersetzt und somit bekomme ich immer den gelichen Icon für die zwei Buttons.

        Set picImp = stdole.StdFunctions.LoadPicture("icon-import.bmp")
        myCmdBar.FindControl(Type:=fpControlTypeButton, Id:=1, Tag:="My Import Button").Picture = picImp
        Set picExp = stdole.StdFunctions.LoadPicture("icon-export.bmp") '"\icon-export.bmp")
        myCmdBar.FindControl(Type:=fpControlTypeButton, Id:=1, Tag:="My Export Button").Picture = picExp
    

    Ich habe die userImages.bmp bearbeitet und meine Imp- und Export-Icons am Ende hinzugefügt. Gibt es eine Möglichkeit, irgendwie mit einem Index auf meine hinzugefügten Icons zuzugreifen.

    Ich hoffe Sie verstehen mein Problem.
    Danke nochmals für den Support

    #8619

    Das Problem ist gelöst. Es geht also über die FaceId-Eigenschaft. Davor muss ich aber die userImages.bmp überschreiben.

    Ich würde aber noch gerne wissen, wie ich die Buttons de-/aktiviere abhängig davon, ob eine Datenbank offen ist.

    #8620
    Bernhard KantzBernhard Kantz
    Moderator

    You could use an event procedure in FlexPro. You could add the commandbar when you open the database and remove the commandbar when you close the database.

    See Understanding Events in the FlexPro Help for details.

    support@weisang.com

    #8621

    Gibt es ein Befehl, um den Installationspfad von Flexpro zu ermitteln ? (sowas wie SysCmd(acSysCmdAccessDir) bei Access)

    Danke

    #8622
    Bernhard KantzBernhard Kantz
    Moderator

    Please try

    Application.Path

    Support
    support@weisang.com

    #8623

    es funktionniert..

    Danke

Ansicht von 13 Beiträgen - 1 bis 13 (von insgesamt 13)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.