TTrackBar y Tprogress creados de código fuente.

Post Reply
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

TTrackBar y Tprogress creados de código fuente.

Post 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?
Vikthor
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

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

Post 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
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post 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.
Vikthor
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Post 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
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post 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.
Vikthor
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Post 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
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post 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.
Vikthor
User avatar
Hernan Diego Ceccarelli
Posts: 84
Joined: Fri Oct 07, 2005 4:51 pm
Location: Rosario - Santa Fe - Argentina
Contact:

Post 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

#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:
User avatar
Vikthor
Posts: 271
Joined: Fri Oct 07, 2005 5:20 am
Location: México

Post 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

#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

#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
Vikthor
Post Reply