• Populating Tabs (VB6)

    • This topic has 4 replies, 2 voices, and was last updated 21 years ago.
    Author
    Topic
    #403074

    (Edited by HansV to make URL clickable – see Help 19)

    The basic question is: I need a tab control that I can dynamically add tabs to and each tab could either hold a grid control or a picturebox containing what would usually go straight on a form. Does anyone have any suggestions on the best way to go about this?

    I currently have a form (not MDI) with a tab control on it. I’m using Xceeds smartUI component (http://www.xceedsoft.com/Download/SmartUI/index.htm%5B/url%5D) which uses pictureboxes to populate its tabs, but the component isn’t the issue, so that doesn’t matter so much.

    If I continue with the SmartUI control ill need to populate everything in picture boxes and build everything on the form with the tab control (although I am waiting for a response from Xceed regarding passing pictureboxes from other forms to it):

    For the grids i’d like to programatically create a picturebox, then create a grid inside the picture box, however the grid may need to be array so I can identify the events easily. I managed to create a picturebox on the form, but I don’t know how to find a controls ProgID which I think I need to be able to add the grid.

    For the pre-designed tabs, I was hoping to create the tab in a picturebox on a form at design time, then at runtime, create a variable from the picturebox and create a new instance of it on the form with the tab. I have seen something along these lines before but it was a while ago and all I can remember is that it used the hWnd variable, after trying this I just got a read only error.

    If anyone can help, give pointers, suggest websites or anything with any of this or suggest a better method of doing it then it would be much appreciated as I am more than a bit stuck. The words “too much at once” have come to mind!

    Viewing 1 reply thread
    Author
    Replies
    • #808192

      Not sure if this will help but…

      I think you can find a way to dynamically add tabs to a tab control in the Access 97 Developer’s Handbook, by Litwin, Getz, and Gilbert (Sybex) Copyright 1997. Their code may give you a start.

      • #808592

        Thanks accdb but I was more trying to work out how to populate the tabs, opposed to actually adding them.
        I have just managed to work it out. The function is as follows:

        Public Function TabAdd(STab As Object, SContainer As Object, TKey As String, TCaption As String, TabFrame As Object, FrmObject As Object) As String
        On Error GoTo err:
        Dim FIndex As Integer
        ‘ADD THE TAB
        ‘Add the tab (Using xceeds SmartUI tab control)
        STab.SmartItems.Add , TKey, TCaption, TabFlat, TKey
        ‘Add the corresponding container
        SContainer.SmartItems.Add , TKey, , MiscObject
        ‘ADD A NEW FRAME
        ‘Determine the new frames index
        For Each Item In TabFrame
        FIndex = Item.Index + 1
        Next Item
        ‘Load the frame
        Load TabFrame(FIndex)
        ‘Set the frames default properties
        With TabFrame(FIndex)
        .Visible = True
        .Left = 0
        .Top = 0
        .Height = 3000
        .Width = 3000
        .BackColor = &HFFFFFF
        End With
        ‘ASSIGN A CONTROL TO THE FRAME
        SetParent FrmObject.hWnd, TabFrame(FIndex).hWnd
        ‘ASSIGN THE FRAME TO THE TAB
        SContainer(TKey).Value = “TabFrame(” & FIndex & “)”
        TabAdd = “success”
        Exit Function
        err:
        TabAdd = err.Number & “: ” & err.Description
        End Function

        I can either pass an object or control directly from a form, or create an object dynamically and pass it to frmobject and whatever is in it appears on a new tab.

        A general BIG thank you for various bits of info I got from various replies and other posts on Woody’s and a couple of other places, mainly regarding:
        Creating a new instance of a form as a variable
        Assinging a controls parent
        Creating object arrays dynamically

        Thanks again everyone.

      • #808593

        Thanks accdb but I was more trying to work out how to populate the tabs, opposed to actually adding them.
        I have just managed to work it out. The function is as follows:

        Public Function TabAdd(STab As Object, SContainer As Object, TKey As String, TCaption As String, TabFrame As Object, FrmObject As Object) As String
        On Error GoTo err:
        Dim FIndex As Integer
        ‘ADD THE TAB
        ‘Add the tab (Using xceeds SmartUI tab control)
        STab.SmartItems.Add , TKey, TCaption, TabFlat, TKey
        ‘Add the corresponding container
        SContainer.SmartItems.Add , TKey, , MiscObject
        ‘ADD A NEW FRAME
        ‘Determine the new frames index
        For Each Item In TabFrame
        FIndex = Item.Index + 1
        Next Item
        ‘Load the frame
        Load TabFrame(FIndex)
        ‘Set the frames default properties
        With TabFrame(FIndex)
        .Visible = True
        .Left = 0
        .Top = 0
        .Height = 3000
        .Width = 3000
        .BackColor = &HFFFFFF
        End With
        ‘ASSIGN A CONTROL TO THE FRAME
        SetParent FrmObject.hWnd, TabFrame(FIndex).hWnd
        ‘ASSIGN THE FRAME TO THE TAB
        SContainer(TKey).Value = “TabFrame(” & FIndex & “)”
        TabAdd = “success”
        Exit Function
        err:
        TabAdd = err.Number & “: ” & err.Description
        End Function

        I can either pass an object or control directly from a form, or create an object dynamically and pass it to frmobject and whatever is in it appears on a new tab.

        A general BIG thank you for various bits of info I got from various replies and other posts on Woody’s and a couple of other places, mainly regarding:
        Creating a new instance of a form as a variable
        Assinging a controls parent
        Creating object arrays dynamically

        Thanks again everyone.

    • #808193

      Not sure if this will help but…

      I think you can find a way to dynamically add tabs to a tab control in the Access 97 Developer’s Handbook, by Litwin, Getz, and Gilbert (Sybex) Copyright 1997. Their code may give you a start.

    Viewing 1 reply thread
    Reply To: Populating Tabs (VB6)

    You can use BBCodes to format your content.
    Your account can't use all available BBCodes, they will be stripped before saving.

    Your information: