tprogress y windows vista
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- José Luis Sánchez
- Posts: 484
- Joined: Thu Oct 13, 2005 9:23 am
- Location: Novelda - Alicante - España
- Contact:
- José Luis Sánchez
- Posts: 484
- Joined: Thu Oct 13, 2005 9:23 am
- Location: Novelda - Alicante - España
- Contact:
- José Luis Sánchez
- Posts: 484
- Joined: Thu Oct 13, 2005 9:23 am
- Location: Novelda - Alicante - España
- Contact:
- José Luis Sánchez
- Posts: 484
- Joined: Thu Oct 13, 2005 9:23 am
- Location: Novelda - Alicante - España
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- José Luis Sánchez
- Posts: 484
- Joined: Thu Oct 13, 2005 9:23 am
- Location: Novelda - Alicante - España
- Contact:
Antonio, insisto en lo de los meter. Mira el siguiente ejemplo:
con este RC
En XP funciona perfecto. En Vista, si le quitas la linea del RC donde carga el .manifest funciona bien, pero si le pones en .manifest ya no llega al final, se queda como al 25% del control. El ejemplo usa la dbf que hay en fivewin/samples.
Saludos,
Code: Select all
// FiveWin Win32 common controls sample
#include "FiveWin.ch"
//----------------------------------------------------------------------------//
function Main()
local oDlg, oTabs, oSay, oProgress, oAnimate ,oSay1,oSay2 , nAVI := 1
DEFINE DIALOG oDlg RESOURCE "Main"
REDEFINE SAY oSay ID 100 OF oDlg
oProgress = TProgress():Redefine( 120, oDlg )
oDlg:bStart := { || SysRefresh(), Ut_CrearNTX(oSay, oProgress),;
oDlg:End() }
ACTIVATE DIALOG oDlg CENTERED
return nil
//-----------------------------------------------------------------------------//
function Ut_CrearNTX(oSay, oProgress)
local nProgress:= 0
field first, last
if File("CUSTOMER.NTX")
delete file "customer.ntx")
endif
USE Customer NEW
MsgAlert(LastRec())
oProgress:SetRange(0, RecCount())
oProgress:SetPos( 0 )
nProgress:= 0
sysrefresh()
INDEX ON first+last TO "CUST01" FOR ! Deleted();
EVAL (oProgress:SetPos(nProgress++), oSay:SetText(nProgress), Sysrefresh()) EVERY 1
Msginfo(nProgress)
DbCloseAll()
return nil
Code: Select all
1 24 "WinXP/WindowsXP.Manifest"
#include "..\include\WinApi.ch"
LANGUAGE LANG_ENGLISH,SUBLANG_ENGLISH_US
MAIN DIALOG DISCARDABLE 110, 41, 262, 71
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_SYSMENU|WS_VISIBLE
CAPTION "Vista Progressbar"
FONT 8, "MS Sans Serif"
BEGIN
CONTROL "", 120, "msctls_progress32", 0x00000000, 12, 20, 240, 20
CONTROL "Text", 100, "Static", WS_GROUP, 12, 48, 240, 8
END
Saludos,
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
José Luis,
Parece una cuestión de pintado de Windows, porque asi se rellena la barra completamente:
Parece una cuestión de pintado de Windows, porque asi se rellena la barra completamente:
Code: Select all
INDEX ON first+last TO "CUST01" FOR ! Deleted();
EVAL (oProgress:SetPos(nProgress++), MsgInfo( nProgress ), oSay:SetText(nProgress), Sysrefresh()) EVERY 1
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
José Luis,
Hay que usar los métodos SetStep() y StepIt() y asi sí completa:
Hay que usar los métodos SetStep() y StepIt() y asi sí completa:
Code: Select all
oProgress:SetRange( 0, RecCount() )
oProgress:SetStep( 2 )
nProgress:= 0
sysrefresh()
INDEX ON first+last TO "CUST01" FOR ! Deleted();
EVAL ( oProgress:SetPos( nProgress++ ),;
If( nProgress < RecCount(), oProgress:StepIt(),),;
oSay:SetText( nProgress ), SysRefresh()) EVERY 1
- José Luis Sánchez
- Posts: 484
- Joined: Thu Oct 13, 2005 9:23 am
- Location: Novelda - Alicante - España
- Contact:
- Anderson.OL
- Posts: 92
- Joined: Thu Feb 15, 2007 11:37 am
- Location: Itaocara - RJ - Brasil
- Contact:
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Anderson,
No, aún no hemos dado con la solución.
De hecho lo estamos comentando estos dias en el foro en inglés:
http://fivetechsoft.com/forums/viewtopic.php?t=10194
No, aún no hemos dado con la solución.
De hecho lo estamos comentando estos dias en el foro en inglés:
http://fivetechsoft.com/forums/viewtopic.php?t=10194