Gracias a todos que ayudaram!! problema resolvido!!!

User avatar
laugusto
Posts: 62
Joined: Fri Apr 28, 2006 4:06 pm

Gracias a todos que ayudaram!! problema resolvido!!!

Post by laugusto »

Antonio,

Tengo en un DIALOG 18 listbox de array, 1 e 18 tem el mismo array, que son horarios. Lo que pasa es que quando clico en el button executo outra tarefa, que sea, abro una otra DIALOG e retorno sem problemas. Pero, quando clico en una celda del browse, executa la misma tarefa, mas ao retornar, mostra los browses como se tivesse ocorrido un scroll, mira la imagem.

imagem normal

Image

imagem ao retornar quando dou click en la celda del browse

Image

No se como proceder para que não aconteça el problema, o sea, no ocorra scroll en los browses.

Saludos desde Brasil,
Last edited by laugusto on Wed Oct 24, 2007 2:03 am, edited 5 times in total.
Luiz Augusto
São José dos Pinhais - PR
BRASIL
fwh + harbour + workshop + velhos bat´s
User avatar
Antonio Linares
Site Admin
Posts: 42588
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Post by Antonio Linares »

Luiz Augusto,

Puedes poner las imágenes más grandes para que se vea con más detalle ? gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
laugusto
Posts: 62
Joined: Fri Apr 28, 2006 4:06 pm

Post by laugusto »

Antonio,

Pido disculpas por las imagenes, ai vão mas grandes.

la primera vez estou nesta tela
http://al5.us/image/images/112637mapa1.JPG

vou para esta otra tela
http://al5.us/image/images/906771mapa4.JPG

e quando retorno minha tela fica deformada
http://al5.us/image/images/384837mapa2.JPG

Saludos desde Brasil
Luiz Augusto
São José dos Pinhais - PR
BRASIL
fwh + harbour + workshop + velhos bat´s
AOKISANTOS
Posts: 210
Joined: Sun Jul 23, 2006 1:15 am

Post by AOKISANTOS »

laugusto


Coloque um pedaço do seu PRG, principalmente quando retorna ao browse para que possamos ajuda-lo.

Ok

Aoki
FWH25+XHARBOUR 99.50
User avatar
Antonio Linares
Site Admin
Posts: 42588
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Has thanked: 38 times
Been thanked: 86 times
Contact:

Post by Antonio Linares »

Luiz Augusto,

Haz como te dice Aoki, muéstranos parte del código cuando vas y regresas al browse.

En la imagen la última fecha es 22:30. Es como si hubieses cambiado el comienzo del browse a una hora más adelantada
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
laugusto
Posts: 62
Joined: Fri Apr 28, 2006 4:06 pm

Post by laugusto »

Buenos dias a todos,

Segue abajo el codigo:

- montagem do button 1 e 18, horarios do mapa:

Code: Select all | Expand

   // Monta o Cabeçalho dos Horarios   a_Mapa[ 1] := { '07:00', '07:30', '08:00', '08:30', '09:00', '09:30', '10:00', '10:30',;                   '11:00', '11:30', '12:00', '12:30', '13:00', '13:30', '14:00', '14:30',;                   '15:00', '15:30', '16:00', '16:30', '17:00', '17:30', '18:00', '18:30',;                   '19:00', '19:30', '20:00', '20:30', '21:00', '21:30', '22:00', '22:30' }   a_Cor[ 1] := {}   // Inicializa o Restante dos ARRAYs   For X := 2 to 32      a_Mapa[ X] := Array(32)       a_Cor[ X] := Array(32)   Next//monta o listbox dos horarios do mapa   //--------------------------------------------------------------------------   // Mostra o Cabeçalho das Horas da Agenda - lado Esquerdo      TWBrowse():lHScroll := .f.      REDEFINE LISTBOX oBrw[ 1];         FIELDS a_Mapa[ 1][ n] ID 70 OF oMap30      oBrw[ 1]:SetArray( a_Mapa[ 1] )      oBrw[ 1]:bGotop       := { || n := 1 }      oBrw[ 1]:bGoBottom    := { || n := Eval( oBrw[ 1]:bLogicLen ) }      oBrw[ 1]:bSkip        := { | nwant, nold | nold := n , n += nwant, n := Max( 1, Min( n, Eval( oBrw[ 1]:bLogicLen ))), n - nOld }      oBrw[ 1]:bLogicLen    := { || Len( a_Mapa[ 1] ) }      // Força o browse a trabalhar com celulas      oBrw[ 1]:lCellStyle    := .t.      oBrw[ 1]:nLineStyle    :=  4      oBrw[ 1]:lDrawHeaders  := .f.      // Cor da Linha      oBrw[ 1]:nClrText := { || CLR_BLACK }      // Cor de fundo da planilha      oBrw[ 1]:nClrPane := { || nRGB( 209, 209, 209 ) }      oBrw[ 1]:lDrawSelect := .f.      oBrw[ 1]:Refresh()   //--------------------------------------------------------------------------   // Mostra o Mapa 1   //  Esta montagem é exatamente igual para os mapas  //  1 a 17, o mapa 18 mostra os horarios do lado direito.      TWBrowse():lHScroll := .f.      REDEFINE LISTBOX oBrw[ 2];         FIELDS a_Mapa[ 2][ n] ID 71 OF oMap30      oBrw[ 2]:SetArray( a_Mapa[ 2] )      oBrw[ 2]:bGotop       := { || n := 1 }      oBrw[ 2]:bGoBottom    := { || n := Eval( oBrw[ 2]:bLogicLen ) }      oBrw[ 2]:bSkip        := { | nwant, nold | nold := n , n += nwant, n := Max( 1, Min( n, Eval( oBrw[ 2]:bLogicLen ))), n - nOld }      oBrw[ 2]:bLogicLen    := { || Len( a_Mapa[ 2] ) }      // Força o browse a trabalhar com celulas      oBrw[ 2]:lCellStyle    := .t.      oBrw[ 2]:nLineStyle    :=  4      oBrw[ 2]:lDrawHeaders  := .f.      // Cor da Linha      oBrw[ 2]:nClrText := { || CLR_WHITE }      // Cor de fundo da planilha      oBrw[ 2]:nClrPane   := { || IF( a_Mapa[ 2][ n] = 'BLOQ', CLR_HRED,;                                  IF( Substr( a_Cor[ 2][ n], 20, 1 ) = '*', nRgb(   0, 193,   0 ),;                                  IF( Substr( a_Cor[ 2][ n], 20, 1 ) = '+', nRgb( 255,   0,   0 ), aBrush_[TCOR[ 1]] ))) }      oBrw[ 2]:bLDblClick   := { | nRow, nCol | pPR_A_COD := TMP[ 1],;                                                bPos := 1, cPos := n,;                                                TESTE2( oWnd, oAgen, oMap30, pPR_A_COD, oBtn_, .t. ) }      /*      Obs.: bPos equivale ao button do profissional            cPos equivale a coluna onde se deu o click do mouse            necessários pra que possa ser feito RETORNO CORRETAMENTE.      */      // Tooltip do conteudo da Celula, funcionalidade futura(18.10.2007 by lAugusto)      oBrw[ 2]:cTooltip := "Duplo Clique para Selecionar " + CRLF + " Horario/Profissional."    //oBrw[ 2]:bChange  := { || oBrw[ 2]:cToolTip := a_Mapa[ 2][ oBrw[ 2]:nAt ] }            oBrw[ 2]:lDrawSelect := .f.      oBrw[ 2]:Refresh()      oBrw[ 2]:nDlgCode := DLGC_WANTALLKEYS      //SysRefresh()   //--------------------------------------------------------------------------// Montagem dos Buttons dos profissionais, de 1 a 18   REDEFINE SBUTTON oBtn[ 1] ID 635 OF oMap30;      PROMPT aCbc[ 1];      ACTION( pPR_A_COD := TMP[ 1], bPos := oMap30:oCtlFocus:nId,;              TESTE2( oWnd, oAgen, oMap30, pPR_A_COD, oBtn_ ) ) CANCEL;      COLORS { |oB| IF( oB:lMouseOver,CLR_WHITE, CLR_BLACK )},;             { |oB| IF( oB:lMouseOver,{ CLR_WHITE, CLR_BLUE },;                                      { CLR_HGRAY, CLR_HGRAY } ) };      BORDER TEXT POSITION ON_CENTER   oBtn[ 1]:lCancel  := .t.   oBtn[ 1]:bKeyDown := { |nKey|;   IF( nKey = VK_ESCAPE,( Ver_Tecla1( oAgen ) ),;   IF( nKey = VK_LEFT,( Anterior( 1 ) ),;   IF( nKey = VK_RIGHT,( Proximo( 1 ) ), nil ))) }   oBtn[ 1]:nDlgCode := DLGC_WANTALLKEYS//-----------------------------------------------------------------//------------ CLICK NO HBUTTON ------------------------------------------------------------Function TESTE2( oWnd, oAgen, oMap30, pPR_A_COD, oBtn_, lEdita )   local oFont   DEFAULT lEdita := .f.  // Quando TRUE, clicou diretamente na Célula.   pPR_A_COD := Substr( PPR_A_COD, 1, 2 ) + ( Strzero( Val( Substr( pPR_A_COD, 3, 3 ) ), 3 ) )   oPR_A_COD:Refresh()   dbSelectArea( "Pro_A01" )  //  sele 7   dbSetOrder( 'IPro_A01' )   //  set order to 1   dbGotop()   dbSeek( pPR_A_COD )   IF EOF()      tone( 2000, 3 )      msginfo( 'O código selecionado não consta do cadastro de profissionais.', 'Atenção Operador' )      xSetFocus( oBtn[bPos] )      Return nil   EndIF   oMap30:Hide()   oAgen:Show()   //oAgen:Enable()   //oAgen:SetFocus()   pPR_A_NOM := Pro_A01->PR_A_NOM   oPR_A_NOM:Refresh()    dbSelectArea( "Pro_C01" )  // Sele 11   dbSetOrder( 'IPRO_C01' )   dbSeek( pPR_A_COD )   TFOLGAT    := Pro_C01->PR_C_FOLG   pPR_C_FUN  := Pro_C01->PR_C_FUN   pPR_C_HENT := Pro_C01->PR_C_HENT   oPR_C_FUN:Refresh()   oPR_C_HENT:Refresh()// pAG_DATA := m->tDATA  by lAugusto 12/09/2007   DIA_SEMANA( oAgen )   oAgen:aControls[ 5]:Refresh()            //  oAG_DATA:Refresh()   oAgen:aControls[ 6]:SetText( tDIA_SEM )  //  oDIA_SEM:Refresh()   // Vai para AGENDA   HORARIO( oAgen, oBtn_ )  // Rotina no AG_002.PRG   // Mostra Botoes Extras de Navegacao do Calendario   oBtn_[ 3]:Show()   oBtn_[ 4]:Show()   oBtn_[ 5]:Show()   oBtn_[ 6]:Show()   DIA( oAgen, lEdita, cpos )  // Rotina no AG_002.PRGReturn nil//-------------------------------------------------------------------Function Ver_Tecla1( oAgen )   local X   tMapa := .t.  // Se TRUE, esta na MAPA.   tAgen := .f.  // Se TRUE, esta na AGENDA.   lProc := .f.   lSai := .f.  // SE FALSE, habilita buttons de funções e coloca o FOCO na data no MAPA   // destrava Buttons de Movimentação do MAPA   For X := 22 to 33      oBtn[ X]:Enable()      oBtn[ X]:Refresh()   Next   // desabilita botoes de escolha do profissional( 1 a 17, inclusive. )   For X := 1 to 17      oBtn[ X]:Refresh()      oBtn[ X]:Disable()   Next   oAG_DATA:Enable()   oAG_DATA:Refresh()   SET DATE FRENCH   DIA_SEMM( )   // Se AGENDA de 30min   IF _TPA = 'N3'      MOSTRAM1( oAgen )   Else  // Se AGENDA de 20min      //    EndIF   xSetFocus( oAG_DATA )Return nil//----------------------------------------------------------------------Function DIA_SEMM( )   DO CASE      Case dow( pAG_DATA ) = 1         tDIA_SEM := 'Domingo'      Case dow( pAG_DATA ) = 2         tDIA_SEM := 'Segunda'      Case dow( pAG_DATA ) = 3         tDIA_SEM := 'Terça  '      Case dow( pAG_DATA ) = 4         tDIA_SEM := 'Quarta '      Case dow( pAG_DATA ) = 5         tDIA_SEM := 'Quinta '      case dow( pAG_DATA ) = 6         tDIA_SEM := '_  '      Case dow( pAG_DATA ) = 7         tDIA_SEM := 'Sábado '   ENDCASE   oDIA_SEM:Refresh()Return nil//-----------------------------------------------------------------------Function MOSTRAM1( oAgen )   local I, X, Z, nInd := 2, n   TC := 7   FOR I = 1 TO 17      DO CASE       Case i = 1            pPR_A_COD = TMP[ 1]       Case i = 2            pPR_A_COD = TMP[ 2]        ...         ...        ...       Case i = 17            pPR_A_COD = TMP[17]      ENDCASE      dbSelectArea( "Ag_Pri" )  // sele 8      dbSetOrder( "IAg_002" )   // set order to 2      dbSeek( pPR_A_COD + Dtos( pAG_DATA ) )      //----------------------------------------------------------------------      // Limpa os Campos do ARRAY do Listbox dos Mapas - 2 a 17            IF Len( a_Mapa[nInd] ) > 0         Z := Len( a_Mapa[nInd] )         oBrw[nInd]:bGotop := { || n := 1 }         For X := 1 To Z            Adel( a_Mapa[nInd][ oBrw[nInd]:nAt ] )            ASize( a_Mapa[nInd], Len( a_Mapa[nInd] ) - 1 )         Next         // Inicializa o Restante dos ARRAYs         a_Mapa[nInd] := Array(32)      EndIF            // Preenche o Array Mapas com os dados da AGENDA do Profissional      a_Mapa[nInd][ 1] := AG_0700A      a_Mapa[nInd][ 2] := AG_0730A      ...      ...      ...       a_Mapa[nInd][30] := AG_0930P      a_Mapa[nInd][31] := AG_1000P      a_Mapa[nInd][32] := AG_1030P      //- Verifica se Substr( a_Cor[nInd][ n], 20, 1 ) = '*', SE SIM, pinta a celula de verde limão      a_Cor[nInd][ 1] := AG_0700AT      a_Cor[nInd][ 2] := AG_0730AT      ...      ...      ...      a_Cor[nInd][31] := AG_1000PT      a_Cor[nInd][32] := AG_1030PT      //----------------------------      dbSelectArea( "Bloqueio" )  //  sele 25      SET FILTER TO Bloqueio->BL_SEM = Dow( pAG_DATA )      dbSeek( pPR_A_COD )      IF !Bloqueio->( EOF() )         While pPR_A_COD = BL_COD            X := BL_HOR            a_Mapa[nInd][ X] := 'BLOQ'            dbSkip()         Enddo      EndIF      SET FILTER TO      oBrw[nInd]:bGotop := { || n := 1 }      oBrw[nInd]:Refresh()      dbSelectArea( "Ag_Pri" )  // sele 8      nInd += 1   NextReturn nil


Saludos desde Brasil,
Luiz Augusto
São José dos Pinhais - PR
BRASIL
fwh + harbour + workshop + velhos bat´s
User avatar
karinha
Posts: 7948
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Post by karinha »

http://al5.us/image/images/384837mapa2.JPG

Luiz, Não consigo identificar o DEFEITO. Olhei as tres tela, e não vejo o ERRO.

Expliqe onde está o problema.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
laugusto
Posts: 62
Joined: Fri Apr 28, 2006 4:06 pm

Post by laugusto »

João,

Olhe as imagens, parece que esta ocorrendo um scroll nos listbox, se voce observar o primeiro listbox, vera que os horarios forma movidos acima, e acontece a mesma coisa com os outros. Este problema não ocorre se clico direto no button, executo a outra tarefa e retorno normal, mas, se clico na CELULA do listbox, ao retornar, causa um scroll.

Espero ter explicado corretamente,

Saludos,
Luiz Augusto
São José dos Pinhais - PR
BRASIL
fwh + harbour + workshop + velhos bat´s
User avatar
karinha
Posts: 7948
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Post by karinha »

TWBrowse():lHScroll := .f.

Luiz, Este comando, é da TWBROWSE.PRG By Hernan???

Luiz, como esta as PROPRIEDADES da sua TWBROWSE(ListBox) no teu ARQUIVO DE RECURSOS. Se entendi, voce não quer que a LISTBOX, APRESENTE UM SCROLL, ele está desligado(desmarcado) na DIALOG??
Vefifique e reporte.

A LISTBOX que voce definui no EDITOR DE RECURSOS, é mesmo uma TWBROWSE??? Verifique.

Abraços.

Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Francisco Horta
Posts: 845
Joined: Sun Oct 09, 2005 5:36 pm
Location: la laguna, mexico.

Post by Francisco Horta »

augusto,
prueba al entrar a la segunda opcion guardar el no. re registro en donde esta posicionado el browse original, luego cuando vuelvas, posiciona el registro nuevamente y refresca el browse
salu2
paco
User avatar
laugusto
Posts: 62
Joined: Fri Apr 28, 2006 4:06 pm

Post by laugusto »

João,

Este comando,
TWBrowse():lHScroll := .f.

Luiz, Este comando, é da TWBROWSE.PRG By Hernan???

Sim, é do Hernan, codigo fonte compilado com FWH2.6 + Harbour45;

como esta as PROPRIEDADES da sua TWBROWSE(ListBox) no teu ARQUIVO DE RECURSOS.

CONTROL "", 71, "TWBrowse", 0 | WS_CHILD | WS_VISIBLE | WS_BORDER | WS_TABSTOP, 46, 59, 30, 281

A LISTBOX que voce definui no EDITOR DE RECURSOS, é mesmo uma TWBROWSE??? Verifique.

Sim!

Pra que voce possa entender o problema, tenho a dizer que, ao clicar na celula do listbox, escondo a dialog, oMap30:Hide(), onde estão os listbox, abro uma outra tela, oAgen:Show() que é a tela dos horarios, ao retornar, escondo oAgen:Hide() e torno a mostrar a tela do mapa, oMap30:Show(), neste momento, é que acontece o problema nos listbox, uma especie de scroll involuntario, bagunçando a tela. É como se os dados dos listbox fossem movidos para cima deixando a parte de baixo vazia, espero ter explicado corretamente.

Saludos, [/code]
Luiz Augusto
São José dos Pinhais - PR
BRASIL
fwh + harbour + workshop + velhos bat´s
User avatar
laugusto
Posts: 62
Joined: Fri Apr 28, 2006 4:06 pm

Post by laugusto »

Paco,

O mas incrivel é que, en el listbox que recebeu o clique do mouse, retorna correto, não acontece o problema.

Saludos desde Brasil,
Luiz Augusto
São José dos Pinhais - PR
BRASIL
fwh + harbour + workshop + velhos bat´s
User avatar
karinha
Posts: 7948
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Post by karinha »

Tente fazer, como o Francisco Horta Falou, além disso, mande REFRESCAR A TELA COM oDlg:Refresh(), oDlg:UpDate(), Veja também se a LISTBOX está sendo REFRESCADA.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
laugusto
Posts: 62
Joined: Fri Apr 28, 2006 4:06 pm

Post by laugusto »

Amigos,

Segue link pra baixar o exe e arquivos, ao descompactar, deixar criar a pasta bellewin, e chamar o exe pelo atalho, caso o disco seja diferente de C, trocar a letra no segundo parametro do atalho de C para D. Escolher a opção agenda de profissionais e teclar F5 pra abrir o mapa.

http://discovirtual.terra.com.br/vd.cgi ... 719&_we=13

Senha de acesso: 40AE7257

Saludos,
Luiz Augusto
São José dos Pinhais - PR
BRASIL
fwh + harbour + workshop + velhos bat´s
User avatar
karinha
Posts: 7948
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Been thanked: 3 times
Contact:

Post by karinha »

laugusto wrote:Amigos,

Segue link pra baixar o exe e arquivos, ao descompactar, deixar criar a pasta bellewin, e chamar o exe pelo atalho, caso o disco seja diferente de C, trocar a letra no segundo parametro do atalho de C para D. Escolher a opção agenda de profissionais e teclar F5 pra abrir o mapa.

http://discovirtual.terra.com.br/vd.cgi ... 719&_we=13

Senha de acesso: 40AE7257

Saludos,



FALTA USUARIO E SENHA DE ACESSO LUIZ... DO PROGRAMA, NÃO DO TERRA.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Post Reply