1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

Garbage Colletion

Discussão em 'Progress 4GL' iniciado por ecsousa, Setembro 15, 2014.

  1. ecsousa

    ecsousa Membro Participativo

    Bom dia,

    É possível acessar informações do GC do Progress? Por exemplo: pegar o número de referências de um objeto.

    Obrigada,
  2. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

  3. ecsousa

    ecsousa Membro Participativo

    Olá,

    Mas não é isso. Gostaria de saber se há uma maneira sem ter que fazer essa navegação.

    Obrigada pela atenção Cleiton,
  4. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Tenta explicar melhor sua necessidade, talvez consigamos ajudar.

    No Progress é possível acessar a memória dos objetos, temos exemplo nas UPCs do EMS que a handle em uma string, e depois com esta string conseguimos recuperar o objeto.

    Abs
  5. ecsousa

    ecsousa Membro Participativo

    Sim.....eu queria algo assim para um objeto de uma classe que eu criei..... e isso ele não tem pelo que pesquisei :(

    Def var hTeste as handle no-undo.
    def var cHandle as char no-undo.

    create button hTeste.

    Assign cHandle = string(hTeste).

    def var outraReferencia as handle no-undo.
    outraReferencia = handle(cHandle).
  6. Cobra.cne

    Cobra.cne Equipe de Suporte Moderador

    Acho que ainda não entendi, porque o seu exemplo funciona.

    Agora se você quer "duplicar o objeto", ou gerar uma nova referência para o mesmo ponteiro de memória, acho que não vai funcionar.

    No exemplo abaixo eu manipulo o botão 2 através de uma nova variável, porém na prática estou manipulando o mesmo objeto, mesma referência de memória.

    PHP:
    DEFINE VARIABLE but1 AS HANDLE NO-UNDO
    DEFINE VARIABLE but2 AS HANDLE NO-UNDO
    DEFINE VARIABLE c-but2 AS CHARACTER   NO-UNDO.

    DEFINE VARIABLE NEW_var_but2 AS HANDLE NO-UNDO

    DISPLAY "Dynamic Button Example" SKIP(3WITH FRAME x SIDE-LABELS
            
    CREATE BUTTON but1 
                ASSIGN  ROW       
    3  
                COLUMN    
    5  
                LABEL     
    "Botão 1" 
                 
    FRAME     FRAME x:HANDLE  
                SENSITIVE 
    TRUE  
                VISIBLE   
    TRUE  
                TRIGGERS
    :    
            
    ON CHOOSE DO:      

                
    ASSIGN c-but2 STRING(but2).
                
    ASSIGN NEW_var_but2 HANDLE(c-but2).
                
    ASSIGN NEW_var_but2:LABEL "NEW_var".

                
    MESSAGE "but2" STRING(but2SKIP
                        
    "c-but2" c-but2 SKIP
                        
    "NEW_var_but2" STRING(NEW_var_but2SKIP
                    VIEW
    -AS ALERT-BOX INFO BUTTONS OK.
            
    END.  
            
    END TRIGGERS

            
    CREATE BUTTON but2 
                ASSIGN  ROW       
    3  
                COLUMN    
    15  
                LABEL     
    "Botão2" 
                 
    FRAME     FRAME x:HANDLE  
                SENSITIVE 
    TRUE  
                VISIBLE   
    TRUE 

    WAIT-FOR WINDOW-CLOSE OF CURRENT-WINDOW.

Compartilhe esta Página