Page 1 of 1

TTrackBar y Tprogress creados de código fuente.

PostPosted: Fri Oct 07, 2005 4:57 pm
by Vikthor
Al crear los controles desde código fuente obtengo un error de creación al momento de activar el dialogo.

Pero si defino el dialogo como "NO MODAL", los controles se muestran perfectamente.

He revisado la clase TDialog para ubicar en donde está el problema y observe que el método Activate hace uso de dos funciones si la variable lModal tiene valor TRUE, y es ahí donde se devuelve un valor 65535 que indica error, en la creación del dialogo.

Antonio, alguna sugencia?

Re: TTrackBar y Tprogress creados de código fuente.

PostPosted: Fri Oct 07, 2005 5:01 pm
by Hernan Diego Ceccarelli
Vikthor wrote:Al crear los controles desde código fuente obtengo un error de creación al momento de activar el dialogo.

Pero si defino el dialogo como "NO MODAL", los controles se muestran perfectamente.

He revisado la clase TDialog para ubicar en donde está el problema y observe que el método Activate hace uso de dos funciones si la variable lModal tiene valor TRUE, y es ahí donde se devuelve un valor 65535 que indica error, en la creación del dialogo.

Antonio, alguna sugencia?


Sip me tope con ese tema una vez, crealos en el ON INIT de la caja de dialogo, cuando la misma ya posee handle real.

Salu2
Hernan

PostPosted: Fri Oct 07, 2005 5:59 pm
by Vikthor
Hernán :

Gracias por responder, aunque la opción que me indicas resuelve el problema, yo no deseo usar la clausula ON INIT para crearlos correctamente.

Llevó dos días buscando la solución y sí alguien me puede iluminar el camino, desde ya estoy agradecido.

PostPosted: Fri Oct 07, 2005 6:11 pm
by Hernan Diego Ceccarelli
Vikthor wrote:Hernán :

Gracias por responder, aunque la opción que me indicas resuelve el problema, yo no deseo usar la clausula ON INIT para crearlos correctamente.

Llevó dos días buscando la solución y sí alguien me puede iluminar el camino, desde ya estoy agradecido.



Es que las funciones que INCRUSTAN el array de controles en tiempo de ejecucion cuando se crea el dialogo realmente, son de tipo INTERNAL, y no puedo ver donde esta el problema que dices. Seguramente ahi esta el problema, no me cabe la duda. Este control necesita un Initialize especial cuando se crea, el TProgress por ejemplo. Deberias charlarlo con Antonio.


Salu2
Hernan

PostPosted: Fri Oct 07, 2005 8:06 pm
by Vikthor
Seguramente que sí, la llamada a oWnd:DefControl() se hace cuando el hWnd de la ventana contenedora está vació, pero hasta ahí es donde he llegado.

Espero que Antonio, no pueda decir por donde buscar los tiros.

PostPosted: Fri Oct 07, 2005 11:15 pm
by Hernan Diego Ceccarelli
Vikthor wrote:Seguramente que sí, la llamada a oWnd:DefControl() se hace cuando el hWnd de la ventana contenedora está vació, pero hasta ahí es donde he llegado.

Espero que Antonio, no pueda decir por donde buscar los tiros.


Hola,
No faltara el InitCommonControlsEx ???????

Salu2

PostPosted: Mon Oct 10, 2005 5:03 pm
by Vikthor
Hernan Diego Ceccarelli wrote:
Hola,
No faltara el InitCommonControlsEx ???????

Salu2


Al agregar esa función en el New de las clases , solamente TProgress se soluciona :D , TTrackbar sigue presentando el mismo problema :( .

Gracias Hernán.

PostPosted: Mon Oct 10, 2005 11:48 pm
by Hernan Diego Ceccarelli
Vikthor wrote:
Hernan Diego Ceccarelli wrote:
Hola,
No faltara el InitCommonControlsEx ???????

Salu2


Al agregar esa función en el New de las clases , solamente TProgress se soluciona :D , TTrackbar sigue presentando el mismo problema :( .

Gracias Hernán.



Deberias inicializar con la misma funcion desde C, PERO como parametro ICC_BAR_CLASSES

Recuerda el API.
Code: Select all  Expand view
#define ICC_LISTVIEW_CLASSES 0x00000001 // listview, header
#define ICC_TREEVIEW_CLASSES 0x00000002 // treeview, tooltips
#define ICC_BAR_CLASSES      0x00000004 // toolbar, statusbar, trackbar, tooltips
#define ICC_TAB_CLASSES      0x00000008 // tab, tooltips
#define ICC_UPDOWN_CLASS     0x00000010 // updown
#define ICC_PROGRESS_CLASS   0x00000020 // progress
#define ICC_HOTKEY_CLASS     0x00000040 // hotkey
#define ICC_ANIMATE_CLASS    0x00000080 // animate
#define ICC_WIN95_CLASSES    0x000000FF
#define ICC_DATE_CLASSES     0x00000100 // month picker, date picker, time picker, updown


Avisa si te anduvo :shock:

PostPosted: Tue Oct 11, 2005 2:38 pm
by Vikthor
Hernan Diego Ceccarelli wrote:Deberias inicializar con la misma funcion desde C, PERO como parametro ICC_BAR_CLASSES

Recuerda el API.
Code: Select all  Expand view
#define ICC_LISTVIEW_CLASSES 0x00000001 // listview, header
#define ICC_TREEVIEW_CLASSES 0x00000002 // treeview, tooltips
#define ICC_BAR_CLASSES      0x00000004 // toolbar, statusbar, trackbar, tooltips
#define ICC_TAB_CLASSES      0x00000008 // tab, tooltips
#define ICC_UPDOWN_CLASS     0x00000010 // updown
#define ICC_PROGRESS_CLASS   0x00000020 // progress
#define ICC_HOTKEY_CLASS     0x00000040 // hotkey
#define ICC_ANIMATE_CLASS    0x00000080 // animate
#define ICC_WIN95_CLASSES    0x000000FF
#define ICC_DATE_CLASSES     0x00000100 // month picker, date picker, time picker, updown


Avisa si te anduvo :shock:


Agregé está pequeña función para inicializar el control desde C, sin embargo sigue mostrando el error.
Code: Select all  Expand view
#pragma BEGINDUMP

#include <windows.h>
#include <vfw.h>
#include <WinTen.h>
#include <ClipApi.h>
#include <shlobj.h>
#include <commctrl.h>

#include "hbapi.h"

HB_FUNC( INITTRACKB )
{
   INITCOMMONCONTROLSEX i;

   _bset( ( char * ) &i, 0, sizeof( INITCOMMONCONTROLSEX ) );

   i.dwSize = sizeof( INITCOMMONCONTROLSEX );
   i.dwICC  = ICC_BAR_CLASSES;

   if( ! InitCommonControlsEx( &i ) )
      MessageBox( 0, "can't load Common controls extended", "From TrackBar.Prg", 0 );
}
#pragma ENDDUMP