We have detected that cookies are not enabled on your browser. Please enable cookies to ensure the proper experience.
Results 1 to 2 of 2
  1. #1
    Join Date
    Sep 2010
    Posts
    1,491

    PersonalStrats, needs help (Alpha version, pretty much broken)

    Sorry but i'm not english and my understanding and writing skills of english language is limited.

    Ok... i've been trying to learn LUA and asking different persons but this is really complicated for someone that has never programmed before and i got several problems (for example, how to read the API information, what is a Sender, what is an Arg, and more...) So i'm gonna post here everything i could create and i hope someone can help me helping with the code, because i don't seem to re-create what the people trying to help told me to do.

    The plugin is intended to be a wiki of the Strategys of every raid/instance (Tired of alt-tabbing and search) With specific information about enemies skills, pulls, maps or special buttons to help players that can't use voice. It's intended to be able to read the strategys from different files so it would be possible for the Raid Leaders to save their own strategys and create Strategys Packs to share with the community.

    Download a RAR file with my plugin: https://rapidshare.com/files/1239841...forumDebug.rar
    Download the strategy pack and settings: https://rapidshare.com/files/209855845/SaelythNotes.rar (Unrar in plugindata/Account/Server/Character)

    Problems i need to solve and no idea how to make it.
    In DraigochTier2chwindow
    Code:
                      -- Ventana principal
    function DraigochTier2chwindow:Constructor()
        Turbine.UI.Lotro.Window.Constructor( self );
    
    Hellish:SetVisible( false );
    
        -- Propiedades de Ventana
        self:SetBackColor( Turbine.UI.Color() );
        self:SetSize(500, 400);
        self:SetText("Draigoch Tier 2 Challenge");
        self:SetOpacity(0.8);
        self:SetPosition( windowSettings.positionX, windowSettings.positionY );
    
              --Texto de titulo donde pone notas
        self.titleLabel = Turbine.UI.Label();
        self.titleLabel:SetParent( self );
        self.titleLabel:SetPosition(20 , 45);
        self.titleLabel:SetFont(Turbine.UI.Lotro.Font.Verdana14);
        self.titleLabel:SetText("Draigoch Strategy - empty if you didn't download any.");    
        self.titleLabel:SetSize(self:GetWidth() - 145, 20);
    
        -- Configuracion de donde escribes la nota y carga de la nota
        self.textInput = Turbine.UI.Label();
        self.textInput:SetParent( self );
        self.textInput:SetVisible( true );
        self.textInput:SetMouseVisible( true );
        self.textInput:SetPosition(20 , 70);
        self.textInput:SetSize(450, 200);
        self.textInput:SetFont(Turbine.UI.Lotro.Font.Verdana12);
        self.textInput:SetText(NotaCargadaVariablebdrai2ch);
        self.textInput:SetVerticalScrollBar(notaScrollBar);
        Turbine.Shell.WriteLine("<rgb=#ff0000>This message should only appear once. This is breaking the window.</rgb>");
        notaScrollBar = Turbine.UI.Lotro.ScrollBar();
        notaScrollBar:SetOrientation( Turbine.UI.Orientation.Vertical );
        notaScrollBar:SetParent( DraigochTier2chwindow );
        notaScrollBar:SetPosition( 470, 70 );
        notaScrollBar:SetSize( 10, 200 );
    
    
          --Texto de titulo para elegir role
        self.titleLabel = Turbine.UI.Label();
        self.titleLabel:SetParent( self );
        self.titleLabel:SetPosition(20 , 340);
        self.titleLabel:SetFont(Turbine.UI.Lotro.Font.Verdana14);
        self.titleLabel:SetText("What is your assigned Role?");    
        self.titleLabel:SetSize(230, 20);
    
                     -- Boton del Tanke
        self.Role1 = Turbine.UI.Lotro.Button();
        self.Role1:SetParent( self );
        self.Role1:SetPosition(230, 320);
        self.Role1:SetWidth( 120 );
        self.Role1:SetText("Tanking");
        self.Role1.Click = function()
         TankeandoDraigoch:Constructor();
        TankeandoDraigoch():SetVisible( true );
        end
        
                         -- Boton del TankHealer
        self.Role2 = Turbine.UI.Lotro.Button();
        self.Role2:SetParent( self );
        self.Role2:SetPosition(350, 320);
        self.Role2:SetWidth( 120 );
        self.Role2:SetText("Healing Tank");
        self.Role2.Click = function()
         HealingTankDraigoch:Constructor();
        HealingTankDraigoch():SetVisible( true );
        end
    
                     -- Boton del FM'er
        self.Role3 = Turbine.UI.Lotro.Button();
        self.Role3:SetParent( self );
        self.Role3:SetPosition(230, 350);
        self.Role3:SetWidth( 120 );
        self.Role3:SetText("Leading FMs");
        self.Role3.Click = function()
         LeadingFMDraigoch:Constructor();
        LeadingFMDraigoch():SetVisible( true );
        end
    
        
                     -- Boton del DPS
        self.Role4 = Turbine.UI.Lotro.Button();
        self.Role4:SetParent( self );
        self.Role4:SetPosition(350, 350);
        self.Role4:SetWidth( 120 );
        self.Role4:SetText("DPS Group");
        self.Role4.Click = function()
         DPSgroupDraigoch:Constructor();
        DPSgroupDraigoch():SetVisible( true );
        end
    
    end
    
    
                    -- Funciones para cargar posicionamiento de ventanas
    function DraigochTier2chwindow:LoadSettings()
        windowSettings = Turbine.PluginData.Load( Turbine.DataScope.Character, "PersonalStratsSettingsDrai2ch" );
        if type( windowSettings ) ~= "table" then
            windowSettings = { positionX = 100, positionY = 100 };
        else
            if windowSettings.positionX == nil then
                windowSettings.positionX = 100;
            end
            if windowSettings.positionY == nil then
                windowSettings.positionY = 100;
            end
        end
    end
    
                      -- Funcion al cerrar ventana principal
    function DraigochTier2chwindow:Closing( args )
        Hellish:SetVisible( true );
    end
    With that code happens 4 unexpected issues:
    1 - If you load the window you will notice in the Standard chat that this: "This message should only appear once. This is breaking the window." Appear TWICE, i don't know why and i "think" that's breaking the scrollabe control.
    2 - The scrolbar doesn't work. it was intended to make an Scroll for a Textbox, then someone told me Textboxes can't be scrollable so i'm trying with a Label, still same problem. what i need is a Textbox And a scrollbar able to scroll that Texbox, anyone can provide me that code?.
    3 - I'd love that the Scrollbar is Inside the textbox and not outside, but if i do that it's unable to be clicked or it's shadowed and hard to see, i don't like that. Maybe with a Zorder? i didn't tried that.
    4 - If somehow i managed to make the scrollbar works and the text in the Labels is way too much to load, then the words are gonna be blending each time you scroll, making it unreadable, really weird.

    Now in the TankeandoDraigoch file/window
    Code:
       -- Funcion de Abrir el Tank management
    function TankeandoDraigoch:Constructor()
        Turbine.UI.Lotro.Window.Constructor( self );
        
        DraigochTier2chwindow():SetVisible( false );
    
        -- Propiedades de Ventana
        self:SetBackColor( Turbine.UI.Color() );
        self:SetSize(250, 200);
        self:SetText("Tanking");
        self:SetOpacity(1.0);
        self:SetPosition( windowSettings.positionX, windowSettings.positionY );
    
             --Texto de arriba
        self.titleLabel = Turbine.UI.Label();
        self.titleLabel:SetParent( self );
        self.titleLabel:SetPosition(37 , 37);
        self.titleLabel:SetFont(Turbine.UI.Lotro.Font.Verdana14);
        self.titleLabel:SetText("When timer goes to expected, click in what Draigoch does.");    
        self.titleLabel:SetSize(200, 40);
    
            --Texto del primer timer
        self.titleLabel = Turbine.UI.Label();
        self.titleLabel:SetParent( self );
        self.titleLabel:SetPosition(40 , 150);
        self.titleLabel:SetFont(Turbine.UI.Lotro.Font.Verdana14);
        self.titleLabel:SetText("Timer for Phase 1: ");    
        self.titleLabel:SetSize(200, 20);
    
        self.titleLabelpreparate = Turbine.UI.Label();
        self.titleLabelpreparate:SetParent( self );
        self.titleLabelpreparate:SetPosition(40 , 98);
        self.titleLabelpreparate:SetBackColor(Turbine.UI.Color( 0.6, 1, 0, 0));
        self.titleLabelpreparate:SetFont(Turbine.UI.Lotro.Font.TrajanProBold22);
        self.titleLabelpreparate:SetTextAlignment( Turbine.UI.ContentAlignment.MiddleCenter );
        self.titleLabelpreparate:SetForeColor( Turbine.UI.Color( 0, 1, 0 ) );
        self.titleLabelpreparate:SetText("Click and Move!");    
        self.titleLabelpreparate:SetSize(170, 20);
        self.titleLabelpreparate:SetVisible( false );
    
            --primer timer
        localPlayer=Turbine.Gameplay.LocalPlayer:GetInstance();
        TankeandoDraigoch.Timer=Turbine.UI.Label();
        TankeandoDraigoch.Timer:SetParent(TankeandoDraigoch);
        TankeandoDraigoch.Timer:SetSize(100,20);
        TankeandoDraigoch.Timer:SetForeColor( Turbine.UI.Color( 0, 1, 0 ) );
        TankeandoDraigoch.Timer:SetFont(Turbine.UI.Lotro.Font.Verdana18);
        TankeandoDraigoch.Timer:SetPosition(163,148);
        TankeandoDraigoch.Timer.StartTime=0;
        TankeandoDraigoch.Timer.EndTime=0;
        TankeandoDraigoch.Timer.OnTimeout=function() end -- placeholder for whatever to do when time runs out
        TankeandoDraigoch.Timer.OnCancel=function() end
        
        -- Lo que pasa cuando el enemigo muere antes que el timer llege al numero. Desactiva el contador y luego esto sucede.
        TankeandoDraigoch.Timer.OnCancel=function()
        Turbine.Shell.WriteLine("<rgb=#ff0000>Saelyth's plugin ID bug 25 - combat ends before timer</rgb>");
        end
    
        -- Lo que pasa cuando llega al tiempo especificado. Desactiva el contador y luego esto sucede.
        TankeandoDraigoch.Timer.OnTimeout=function()
         self.titleLabelpreparate:SetVisible( true );
          TankeandoDraigoch.Timer:SetText("Waiting...");
        end
    
    
        TankeandoDraigoch.Timer.Update=function()
         local currentTime=Turbine.Engine.GetGameTime();
         if currentTime>=TankeandoDraigoch.Timer.EndTime then
          -- disable timer and call OnTimeout
          TankeandoDraigoch.Timer:OnTimeout();
         elseif not localPlayer:IsInCombat() then
          TankeandoDraigoch.Timer:SetWantsUpdates(false);
          TankeandoDraigoch.Timer:OnCancel();
         else
          TankeandoDraigoch.Timer:SetText(math.floor(currentTime-TankeandoDraigoch.Timer.StartTime));
         end
        end
        CombatTimer=function()
         if localPlayer:IsInCombat() then
          TankeandoDraigoch.Timer.StartTime=Turbine.Engine.GetGameTime();
          TankeandoDraigoch.Timer.EndTime=TankeandoDraigoch.Timer.StartTime+75; -- Tiempo que quieres que dure la fase1
          TankeandoDraigoch.Timer:SetWantsUpdates(true); -- enable the update timer
        self.titleLabelpreparate:SetVisible( false );
        Turbine.Shell.WriteLine("Saelyth plugin Timer starts")
         end
        end
        CombatChangedHandler=AddCallback(localPlayer,"InCombatChanged",CombatTimer)
    
            --Texto que te habla de las fases
        self.phase = Turbine.UI.Label();
        self.phase:SetParent( self );
        self.phase:SetPosition(29 , 169);
        self.phase:SetFont(Turbine.UI.Lotro.Font.Verdana14);
        self.phase:SetForeColor( Turbine.UI.Color( 1, 0, 0 ) );
        self.phase:SetText("PHASE 1, expected 75 seconds");    
        self.phase:SetSize(300, 20);
        self.phase:SetVisible( true );
    
                --Texto que te habla de las fases
        self.phase2 = Turbine.UI.Label();
        self.phase2:SetParent( self );
        self.phase2:SetPosition(100 , 170);
        self.phase2:SetFont(Turbine.UI.Lotro.Font.Verdana14);
        self.phase2:SetForeColor( Turbine.UI.Color( 1, 100, 0 ) );
        self.phase2:SetText("PHASE 2");    
        self.phase2:SetSize(100, 20);
        self.phase2:SetVisible( false );
    
    
            --Texto del segundo timer
        self.titleLabel3 = Turbine.UI.Label();
        self.titleLabel3:SetParent( self );
        self.titleLabel3:SetPosition(40 , 170);
        self.titleLabel3:SetFont(Turbine.UI.Lotro.Font.Verdana14);
        self.titleLabel3:SetText("Timer for Phase 2:");    
        self.titleLabel3:SetSize(200, 20);
        self.titleLabel3:SetVisible(false);
    
                 -- Boton de salto derecha    
        self.saltoderecha = Turbine.UI.Label();
        self.saltoderecha:SetParent( self );
        self.saltoderecha:SetPosition(130, 70);
        self.saltoderecha:SetFontStyle(Turbine.UI.FontStyle.Outline);
        self.saltoderecha:SetFont(Turbine.UI.Lotro.Font.Verdana16);
        self.saltoderecha:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
        self.saltoderecha:SetText("Jumping Right");
        self.saltoderecha:SetSize(100, 25);
        self.saltoderecha:SetZOrder(110);
        self.saltoderecha:SetBackColor(Turbine.UI.Color( 0.4, 0, 0, 1));
        self.saltoderecha:SetBackColorBlendMode(Turbine.UI.BlendMode.Normal);
        self.saltoderecha:SetMouseVisible(false);
        -- Crea un quickslot en el mismo lugar que el boton.
        quickslotsaltoderecha = Turbine.UI.Lotro.Quickslot();
        quickslotsaltoderecha:SetParent(TankeandoDraigoch);
        quickslotsaltoderecha:SetSize(100,25);
        quickslotsaltoderecha:SetPosition(130, 70);
        quickslotsaltoderecha:SetZOrder(100);
        quickslotsaltoderecha:SetUseOnRightClick(false);
        Mensajeaenviarsaltoderecha = "/ra <rgb=#ff0000>-- LEFT --</rgb>";
        quickslotsaltoderecha:SetShortcut(Turbine.UI.Lotro.Shortcut( Turbine.UI.Lotro.ShortcutType.Alias, Mensajeaenviarsaltoderecha));
        quickslotsaltoderecha:SetAllowDrop(false);
        quickslotsaltoderecha:SetVisible(true);
    
                 -- Boton de salto izquierdo
        self.saltoizquierda = Turbine.UI.Label();
        self.saltoizquierda:SetParent( self );
        self.saltoizquierda:SetPosition(20, 70);
        self.saltoizquierda:SetFontStyle(Turbine.UI.FontStyle.Outline);
        self.saltoizquierda:SetFont(Turbine.UI.Lotro.Font.Verdana16);
        self.saltoizquierda:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
        self.saltoizquierda:SetText("Jumping Left");
        self.saltoizquierda:SetSize(100, 25);
        self.saltoizquierda:SetZOrder(110);
        self.saltoizquierda:SetBackColor(Turbine.UI.Color( 0.4, 0, 0, 1));
        self.saltoizquierda:SetBackColorBlendMode(Turbine.UI.BlendMode.Normal);
        self.saltoizquierda:SetMouseVisible(false);
        -- Crea un quickslot en el mismo lugar que el boton.
        quickslotsaltoizquierda = Turbine.UI.Lotro.Quickslot();
        quickslotsaltoizquierda:SetParent(TankeandoDraigoch);
        quickslotsaltoizquierda:SetSize(100,25);
        quickslotsaltoizquierda:SetPosition(20, 70);
        quickslotsaltoizquierda:SetZOrder(100);
        quickslotsaltoizquierda:SetUseOnRightClick(false);
        Mensajeaenviarsaltoizquierda = "/ra <rgb=#ff0000>-- RIGHT --</rgb>";
        quickslotsaltoizquierda:SetShortcut(Turbine.UI.Lotro.Shortcut( Turbine.UI.Lotro.ShortcutType.Alias, Mensajeaenviarsaltoizquierda));
        quickslotsaltoizquierda:SetAllowDrop(false);
        quickslotsaltoizquierda:SetVisible(true);
    
                -- Boton de pata derecha
        self.pataderecha = Turbine.UI.Label();
        self.pataderecha:SetParent( self );
        self.pataderecha:SetPosition(130, 120);
        self.pataderecha:SetFontStyle(Turbine.UI.FontStyle.Outline);
        self.pataderecha:SetFont(Turbine.UI.Lotro.Font.Verdana16);
        self.pataderecha:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
        self.pataderecha:SetText("Claw on Right");
        self.pataderecha:SetSize(100, 25);
        self.pataderecha:SetZOrder(110);
        self.pataderecha:SetBackColor(Turbine.UI.Color( 0.4, 0, 0, 1));
        self.pataderecha:SetBackColorBlendMode(Turbine.UI.BlendMode.Normal);
        self.pataderecha:SetMouseVisible(false);
        -- Crea un quickslot en el mismo lugar que el boton.
        quickslotpataderecha = Turbine.UI.Lotro.Quickslot();
        quickslotpataderecha:SetParent(TankeandoDraigoch);
        quickslotpataderecha:SetSize(100,25);
        quickslotpataderecha:SetPosition(130, 120);
        quickslotpataderecha:SetZOrder(100);
        quickslotpataderecha:SetUseOnRightClick(false);
        Mensajeaenviarpataderecha = "/ra <rgb=#ff0000>-- RIGHT --</rgb>";
        quickslotpataderecha:SetShortcut(Turbine.UI.Lotro.Shortcut( Turbine.UI.Lotro.ShortcutType.Alias, Mensajeaenviarpataderecha));
        quickslotpataderecha:SetAllowDrop(false);    
        quickslotpataderecha:SetVisible(true);
    
                 -- Boton de pata izquierda
        self.pataizquierda = Turbine.UI.Label();
        self.pataizquierda:SetParent( self );
        self.pataizquierda:SetPosition(20, 120);
        self.pataizquierda:SetFontStyle(Turbine.UI.FontStyle.Outline);
        self.pataizquierda:SetFont(Turbine.UI.Lotro.Font.Verdana16);
        self.pataizquierda:SetTextAlignment(Turbine.UI.ContentAlignment.MiddleCenter);
        self.pataizquierda:SetText("Claw on Left");
        self.pataizquierda:SetSize(100, 25);
        self.pataizquierda:SetZOrder(110);
        self.pataizquierda:SetBackColor(Turbine.UI.Color( 0.4, 0, 0, 1));
        self.pataizquierda:SetBackColorBlendMode(Turbine.UI.BlendMode.Normal);
        self.pataizquierda:SetMouseVisible(false);
        -- Crea un quickslot en el mismo lugar que el boton.
        quickslotpataizquierda = Turbine.UI.Lotro.Quickslot();
        quickslotpataizquierda:SetParent(TankeandoDraigoch);
        quickslotpataizquierda:SetSize(100,25);
        quickslotpataizquierda:SetPosition(20, 120);
        quickslotpataizquierda:SetZOrder(100);
        quickslotpataizquierda:SetUseOnRightClick(false);
        Mensajeaenviarpataizquierda = "/ra <rgb=#ff0000>-- LEFT --</rgb>";
        quickslotpataizquierda:SetShortcut(Turbine.UI.Lotro.Shortcut( Turbine.UI.Lotro.ShortcutType.Alias, Mensajeaenviarpataizquierda));
        quickslotpataizquierda:SetAllowDrop(false);
        quickslotpataizquierda:SetVisible(true);
    
    end        
    
                      -- Funcion al cerrar ventana principal
    function TankeandoDraigoch:Closing( args )
        DraigochTier2chwindow():SetVisible( true );
    end
    
    
            -- Funciones para pillar texto del chat.
    function ProcessMessage(message)
    if string.match(message, "this is a") and string.match(message, "test") then
    TankeandoDraigoch.phase:SetVisible( false );
    TankeandoDraigoch.phase2:SetVisible( true );
    end
    end
    
    function ProcessChat(sender, args)
    if args.ChatType == Turbine.ChatType.Say then
    ProcessMessage(args.Message)
    end
    end
    AddCallback(Turbine.Chat, "Received", ProcessChat)
    I need an efficient way to get the 2nd phase. Expected with this code.
    Code:
    1: If i'm in combat, start the timer.
    2: If self.phase is visible.
     - if timer gets to 75, Make the self.titleLabelpreparate:SetVisible( true ); but don't stop timer.
    - If suddenly i'm out of combat, stop the timer and self.titleLabelpreparate:SetVisible( false );
    - If timer gets to 80, Make the self.titleLabelpreparate:SetText("Phase 2 or Body is down..."); Stop timer.
    3: That would make a button appear to Select if draigoch is down or should make the plugin move to phase 2, The button would make the self.phase2 is visible., wich would be automatic but i don't know how to track phase 2 without error.
    4: And being able to repeat that rotation each time i enter/ends a combat.  I'm trying different ways but i'm getting stuck everytime.
    
    Then, phase 1 covered. I'd need that 
    
    1: If i'm in combat, start the timer.
    2: If self.phase2 is visible.
     - if timer gets to 90, Make the self.titleLabelpreparate:SetVisible( true ); but don't stop timer.
    - If suddenly i'm out of combat, stop the timer and self.titleLabelpreparate:SetVisible( false );
    3:  If Draigoch says in say channel ("Draigoch the Red shouts, ''Cowards! Stand and fight me!'') then make the plugin moves to Phase 3 timers, i'm not yet how to make it.
    4: And being able to repeat that rotation each time i enter/ends a combat.  I'm trying different ways but i'm getting stuck everytime.
    
    Phase 3, to be decided
    Anyway no matter what i try this is way TOO hard for me, i've spent 2 weeks trying to fix this and that's the far i got with no result.

    I'm starting with draigoch even though i don't polished that Strategy and i could try to make the BG strategy first, but yet i don't want to start something just to break it 2 days later because i don't know how to make an scrollbar and maybe all the work i do without the scrollbar worths nothing. First i would need this problems fixed.

    Thanks if anyone can provice some help. Please if you provide code as examples i'd rather if it's not too complicated. If it's adapted already to this plugin would be great, otherwise as it happened with me with the timer or the scrollbar i won't be able to re-create it and will gonna be broken, 1 more thing broken.

    Sidenote: Think on this as a Team-Group Plugin, i will share all the credit with the people willing to help, i hope someone agree that this plugin would be useful just to check if Durchest makes impending doom for 20% damge or 25% damage. Just an example of the very deep this information could be useful to check in a moment without alt-tabbing.
    Last edited by Saelyth; May 18 2012 at 10:44 PM. Reason: typo

  2. #2
    Join Date
    Mar 2007
    Posts
    1,212

    Re: PersonalStrats, needs help (Alpha version, pretty much broken)

    Without digging too far, I can tell you that you have one critical error which is preventing your scrollbar from working. The line:
    self.textInput:SetVerticalScro llBar(notaScrollBar);

    occurs before notaScrollBar is created, so at the point where you are setting the vertical scrollbar for textInput, notaScrollBar is nil, so you are setting the vertical scrollbar to nil. You should bind the scrollbar to a control as the very last step after it is defined, so that line should follow the line:
    notaScrollBar:SetSize( 10, 200 );

    Second, the control "notaScrollBar" is not local to the instance of DraigochTier2chwindow window, so oddly enough, whatever code is causing the constructor to be called twice is actually masking the problem since when the constructor is called the second time, the notaScrollBar does exist (since it's not local) and gets assigned, then a new control is created for notaScrollBar which causes a whole buch of other problems. So, to fix this, you should change "notaScrollBar" to "self.notaScrollBar" and then you need to hunt down where you are calling the DraigochTier2chwindow constructor more than once.

    Whoever told you that text boxes can't be scrollable is simple wrong. The code snippet below is from the Debug window for MoorMap ver 1.17 and the command text box is most definately scrollable.
    Code:
     self.CommandText=Turbine.UI.Lotro.TextBox();
     self.CommandText:SetParent(self.CommandPanel);
     self.CommandText:SetSize(self.CommandPanel:GetWidth()-12,self.CommandPanel:GetHeight()-62);
     self.CommandText:SetPosition(1,31);
     self.CommandText:SetFont(debugFont);
     self.CommandText:SetSelectable(true);
     self.CommandText.VScroll=Turbine.UI.Lotro.ScrollBar();
     self.CommandText.VScroll:SetOrientation(Turbine.UI.Orientation.Vertical);
     self.CommandText.VScroll:SetParent(self.CommandPanel);
     self.CommandText.VScroll:SetPosition(self.CommandText:GetLeft()+self.CommandText:GetWidth(),self.CommandText:GetTop());
     self.CommandText.VScroll:SetWidth(10);
     self.CommandText.VScroll:SetHeight(self.CommandText:GetHeight());
     self.CommandText:SetVerticalScrollBar(self.CommandText.VScroll);
    note in the code above that the scrollbar is created as a member of "self" so that a unique instance will be attached to each instance of the window and the scrollbar is not bound until after it is completely defined.

    If I find more time later I will read the second part of your post, but hopefully this helps you with your scrollbar issues.
    Last edited by Garan; May 19 2012 at 01:09 AM.

 

 

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

This form's session has expired. You need to reload the page.

Reload